`
海王子1994
  • 浏览: 43671 次
  • 性别: 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方法,垃圾回收等,这里不一一提及。
分享到:
评论

相关推荐

    实验5 JAVA常用类.doc

    本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...

    JAVA_API1.6文档(中文)

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

    java重要知识点总结

    1.java是一种编译解释型的语言。...5.public类名必须跟java文件同名,且一个java文件中只能包括一个public类。 6.java注释: // 单行注释 /* */ 多行注释(不能嵌套) //* */ 文档说明注释 ...... .... .....

    java类加载器实例

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

    Java常用工具类大全,工作5年精心整理(最新版)

    提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...

    java类,类的实现

    java类,对象是数据(属性)和方法(行为)的封装。 封装是面向对象的一个重要原则。在面向对象的程序开发中,每个类中都封装了相关的数据和操作。 类是具有相同属性和行为的一组对象的抽象、一般描述。对象是类的...

    ClassGuard java类加密

    classguard是防止java反编译工具的工具,它允许java类文件使用128bit的AES加密加密。AES密钥是随机生成的每次启动加密工具。解密是一个自定义的类装载器透明地做。这类装载器的主要部分是用C防止反编译等篡改。

    Java的文件处理相关工具类

    提供java中对文件类的各种基本操作,主要包括获取文件的后缀名称,读取文件内容,写入文件内容,拷贝文件,将文件转换为二进制数组等操作,转换为Blob格式类等操作

    java常用类解析及示例及一些工具类源代码

    主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...

    Java常用工具类大全

    提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...

    Java 1.6 API 中文 New

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

    java反射工具类

    java的泛型和反射机制一直很难理解和应用,这个程序是关于反射和泛型的综合使用,主要实现获取一个类的属性名和方法,并可以获取属性值,存取属性值,属性名和属性值的字符串方式输出。只是个工具类,没有写测试类,...

    java基础类库开发包,工作5年精心整理_Java常用工具类源码

    收集了java项目开中常用的工具操作类,方法非常全,可应用在大部份java 项目中。 提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用...

    浅谈Java内部类的四个应用场景

    Java内部类是Java言语的一个很重要的概念,《Java编程思想》花了很大的篇幅来讲述这个概念。但是我们在实践中很少用到它,虽然我们在很多时候会被动的使用到它,但它仍然像一个幕后英雄一样,不为我们所知,不为我们...

    JavaAPI1.6中文chm文档 part1

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

    java试卷及答案

    7 java图形类中不但提供了一些绘图方法 还可以装载 jpeg 和 gif 两种格式的图形文件 在APPLET程序中显示一图片文件需用到 getImage 和 drawImage 方法 8 java中 例外可以分为三大类: Error Exception ...

    java 字符工具类

    自己写的java字符工具类。主要有以下几个函数: public static String escape(String str,String charset):可以将以下格式的字符串

    Java实现的进制转换工具类完整示例

    主要介绍了Java实现的进制转换工具类,结合完整实例形式分析了Java实现二进制、十六进制、字符串、数组等相关转换操作技巧,需要的朋友可以参考下

    Java实例化一个抽象类对象的方法教程

    大家都知道抽象类无法实例化,就无法创建对象...所以下面这篇文章主要给大家介绍了关于Java实例化一个抽象类对象的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

Global site tag (gtag.js) - Google Analytics