zoukankan      html  css  js  c++  java
  • Java中的重要类

      -----------疯狂软件Java培训、iOS培训分享-------------

      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培训平台,向社会输送大量的IT人才,赢得了学员和企业的良好口碑。Java培训,专业Java培训机构,高中以上学历均可参加,疯狂软件学院学员毕业后入职名企拿高薪,

    疯狂软件Java培训、iOS培训新年钜惠,报名Java就业班免费赠送Java基础班,报名iOS就业班免费赠送iOS基础班,本月火速抢座中,为回报广大新老学员,值此新年之际推出报读就业班赠送基础班的活动。 

  • 相关阅读:
    Java编程之路相关书籍
    JAVA中的Random()函数
    在鼠标右键上加入使用notepad++编辑
    更改IE浏览器的收藏夹位置
    Java四类八种数据类型
    成为Java顶尖程序员 ,看这11本书就够了
    面向对象(多异常的声明与处理)
    面向对象(异常try-catch)
    面向对象(异常概述)
    面向对象(局部内部类和匿名内部类)
  • 原文地址:https://www.cnblogs.com/gojava/p/3549350.html
Copyright © 2011-2022 走看看