`
海王子1994
  • 浏览: 45416 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java中的重要类

阅读更多
Java中有两个重要类,String类和System类,现做简单介绍:

*String类:

1.String是字符串常量,一旦创建便不可更改。
2.对String对象进行的操作都不是在其自身上进行的,而是新生成一个对象,这个挺有趣的。
3.当不同类型的操作数进行"+"操作时,只要有一个操作数是String类型,那么就会将其他操作数转换为String类型。不过呢,操作数顺序会影响到输出的结果,甚至也可能产生编译错误,这里就不举例了。

很多人对"equals"和"=="两者的区别不是很了解,这里举例加深大家印象:

String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));

程序输出为:
false
true

解释:地址必定不相等,故“s1==s2”值为false。对应字符相等,则后者值为true。

另外谈到字符串,就谈谈字符串的常量池吧。其实呢,在Java中,存在一个特殊的存储区域,用来存储字符串常量,这个存储区域通常称为常量池。在程序的编译期间,当需要使用某个字符串常量时,首先会搜索常量池,若发现该区域中存在需要使用的字符串,则直接使用;否则就将该字符串常量添加到常量池中,然后再使用。如此,就会节省许多空间啦!

此外,如果需要频繁使用字符串连接操作,应该使用StringBuilder来代替String;注意了,String类重写了equals方法,但是后者没有,而是依然使用从Object类继承的方法,因为StringBuilder类的equals方法比较的是对象的地址,而非内容,即可当成是"==".


*System类:

System类是一个final类,不能被子类继承,构造器声明为private,在类的外部也不能够实例化。

它里面有currentTimeMillis()方法,应用如下:

public class Testing {

//循环的时间测试,比较两者循环方式的运行时间

public static void main(String[] args)
{
//初始化变量
int v1=10000;
int v2=1000;
int v3=10;
long startTime,time;
//将当前时间赋值给startTime
startTime=System.currentTimeMillis();

//外循环次数较多的循环
for(int i=0;i<=v1;i++)
{
                    for(int j=0;j<=v2;j++)
                   {
                    for(int k=0;k<=v3;k++)
                     {
            
                      }
                    }
}
time=System.currentTimeMillis()-startTime;
System.out.println("外层循环次数多,内层循环次数少的时间为:");
System.out.println(time);
//////////////////////////////////////////////////////
//将当前时间再次赋值给startTime
startTime=System.currentTimeMillis();

//内循环次数较多的循环
for(int i=0;i<=v3;i++)
{
                   for(int j=0;j<=v2;j++)
                   {
                    for(int k=0;k<=v1;k++)
                      {
          
                      }
                    }
}

time=System.currentTimeMillis()-startTime;
System.out.println("内层循环次数多,外层循环次数少的时间为:");
System.out.println(time);

}
}

要提醒的是,当进行编译时,大家会发现每次都会产生不同结果,这是因为机器配置以及其他运行环境等因素的差异,加之本身方法存在一定误差造成的。

要更精确的计算时间方法,可以用nanoTime()方法代替,但是依然不能保证完全的准确。

System类中也有数组复制的方法:arraycopy()

语法格式如下:
public static native void arraycopy(Object src,int srcPos,Object dest,int destPos,int length);
该方法将从src数组的第srcPosg个元素开始,依次复制至dest数组的第destPos位置,复制元素个数为length个。

例子:

int[]a={1,2,3,4,5,6};
int[]b=new int[5];
System.arraycopy(a,1,b,0,5);

此外System类还可以设置系统属性,IO流,实现exit方法,垃圾回收等,这里不一一提及。
分享到:
评论

相关推荐

    JAVA_API1.6文档(中文)

    javax.print 为 JavaTM Print Service API 提供了主要类和接口。 javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。 javax.print.attribute.standard 包 javax....

    《kettle中调用java类》示例代码

    在标题《kettle中调用java类》示例代码中,我们关注的是如何在Kettle的转换或作业中嵌入Java代码,以实现更复杂的数据处理逻辑。 首先,Kettle支持两种方式来调用Java类:使用“Java Class”步骤和使用“Execute ...

    MySQL表自动生成Java实体类

    MySQL数据库在Java开发中扮演着重要的角色,尤其是在构建基于JDBC的应用程序时。Java实体类(Entity Class)作为数据模型的表示,与数据库中的表进行映射,使得开发者能够更方便地操作数据库。本主题主要讲解如何...

    java常用工具类

    在Java编程中,工具类(Util Classes)是包含各种实用方法的类,它们不持有状态,主要用于提供方便的静态方法。这些工具类极大地提升了代码的可读性和复用性。以下将详细介绍标题和描述中提到的一些关键工具类及其...

    Java类库中文手册

    5. **多线程**:Java内置了对多线程的支持,`java.lang.Thread`类和`Runnable`接口是创建线程的主要方式,`synchronized`关键字用于线程同步,`wait()`、`notify()`和`notifyAll()`方法控制线程间的协作。...

    java常用的工具类整理28个

    下面我们将详细探讨Java中28个常用的工具类,主要涉及`IO`相关的开发工具。 1. **java.lang.Math**:这个类提供了许多基础数学函数,如求平方根、最大值、最小值、随机数生成等。 2. **java.util.Arrays**:用于...

    java应用程序类加载器,ClassLoader for java Application

    Java应用程序类加载器是Java平台的核心组成部分之一,它负责加载应用程序中的类到JVM(Java虚拟机)中,使得程序能够执行。理解类加载器的工作原理对于深入学习Java编程至关重要。在Java中,类加载器按照层次结构...

    Java API文档 中文网页版

    Java API文档是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)中的所有类、接口、方法和常量的详细说明。这份中文网页版的Java API文档为中国的开发者提供了便利,无需通过英文版本来学习和查找API信息,...

    Java调用c++类对象

    Java调用C++类对象是一种跨语言交互技术,主要用于利用Java的平台独立性和C++的高性能。这种技术通常依赖于Java Native Interface (JNI),它允许Java代码直接调用本地(如C++)代码,反之亦然。下面我们将深入探讨...

    牛逼的java常用工具类

    Java作为一个广泛使用的编程语言,其丰富的工具类库是开发者日常工作中不可或缺的部分。在这个名为"牛逼的java常用工具类"的压缩包中,我们可以期待找到一些由经验丰富的开发者精心设计和优化的工具类,这些工具类能...

    Java中类的生命周期

    这一过程主要是为了在类被初始化前,能够获取到类中所使用的其他类的信息。 ##### 初始化阶段 初始化阶段的主要任务是给类的静态变量赋予正确的初始值,这通常通过执行类的初始化语句来实现,包括静态变量的声明...

    整理的若干java常用工具类

    Java工具类是Java编程中非常重要的组成部分,它们提供了一系列便捷的方法,可以极大地提高开发效率,减少重复代码。这里我们主要探讨的是一个集合了多种常见功能的Java工具类库。 首先,我们要理解Java工具类(Java...

    java的workbook类的jar包

    Java的`Workbook`类是Apache POI库中的核心组件,主要用于处理Microsoft Excel文件。Apache POI是一个开源项目,提供了一套API,使得开发者能够在Java环境中读取、写入和修改Excel文档。`Workbook`类是这个框架中的...

    java类加载器实例

    类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java ...

    Java标准类库(java基础类)

    例如,在Java 1.2版本中,对数据流类进行了增强,使得一些方法(如`close()`、`read()`、`write()`等)更加符合其语义,提高了代码的健壮性。此外,还增强了序列化和反序列化的安全性,增加了新的权限控制类`...

    任意XML转实体类 实体类 转XML 方法 JAVA

    总结一下,XML转实体类和实体类转XML涉及的主要知识点有:Java反射API、XML解析(DOM、SAX、StAX、JAXB),以及对象的序列化和反序列化。在实际开发中,我们需要根据项目需求选择合适的工具和方法,确保数据的准确...

    中文文本分类源代码 使用JAVA

    在Java中,`jieba分词库`或`HanLP`等工具可以方便地进行中文文本处理。 2. **向量化表示**: 将文本转化为数值形式,常用的方法有词袋模型(Bag-of-Words)、TF-IDF、词嵌入(如Word2Vec)等。Java的`Apache Lucene`...

    springboot+java类热加载

    在Java中,类加载器负责查找并加载类到Java虚拟机中。我们可以通过自定义类加载器来实现热加载。例如,`MemoryClassLoader.java`可能就是一个自定义类加载器的实现,它可以在内存中动态加载或更新类。 **JarinJAR**...

    java 类从哪个jar包加载的

    在Java中,类加载器有层次结构,主要由Bootstrap ClassLoader、Extension ClassLoader和App ClassLoader(也称为System ClassLoader)组成。Bootstrap ClassLoader负责加载JRE核心库(如rt.jar),Extension ...

    groovy和Java相互调用1

    标题中的“Groovy和Java相互调用1”指的是在编程时如何在Groovy语言环境中调用Java类,以及反之,如何在Java程序中调用Groovy类。这是一种跨语言交互的方式,特别是在混合使用Groovy和Java的项目中非常常见。 ...

Global site tag (gtag.js) - Google Analytics