Java常见对象System类-30-基本了解和几个常用成员方法

       本篇来了解下System这个类,这个类我们在前面至少两个地方用到过,一个是天天写输出语句的System.out.println(),还有一个是在使用Scanner类过程中,接收键盘录入对象的参数System.in。学习完这篇,就能了解System.in和System.out这大概的作用。

1.基本特点

      打开JAVA API文档,搜索找到System类,可以了解下,System类是在lang包下,所以使用System不需要导入包。System类下所有的成员方法都是用static修饰,而且查看System类源码,找到构造方法,是用private修饰,所以System类不能用new创建,不能实例化一个类对象。在字段区域,可以看到,err表示标准错误输出流,in表示标准输入流,一般指键盘,out表示标准输出流,一般输出到控制台。所以,我们一直在输出的打印语句就是标准输出流的一个方法。

2.成员方法练习

1)gc()

       这个方法是调用垃圾回收方法,Object类有一个finalize()方法,一般来说,系统决定什么时候到达了垃圾回收,才会调用finalize()方法去处理垃圾回收。如果程序员想自动处理垃圾回收,可以通过System.gc()方法去呼唤finalize()方法执行垃圾回收。关于这个方法,简单了解一下就可以。

 

2)exit(int status)

       这个方法的作用是终止当前运行的JAVA虚拟机。参数status是一个int类型,0表示正常退出,非0表示异常退出java虚拟机。

package otherclass;

public class Demo1_System {

   public static void main(String[] args) {

     System.out.println("Start");
     System.exit(0);
     System.out.println("end");
   }
}

可以看到,只会输出Start,end没有,因为前面一行执行了退出JVM操作。


3)currentTimeMillis()

       返回以毫秒为单位的当前时间,有时候我们拿到这个时间就可以转换成不同格式的时间,从而去做其他事情,例如日志输出,时间戳可能用的到。

package otherclass;

public class Demo1_System {

   public static void main(String[] args) {

     intsum = 0;

     longtime_start = System.currentTimeMillis();

     for(inti=0; i <= 100000; i++) {

        sum += i;

     }

     System.out.println(sum);

     longtime_end = System.currentTimeMillis();

     System.out.println(time_end - time_start);

   }
 
}

       我的电脑结果输出 2毫秒,这个算性能比较好的,因为一秒等于1000毫秒,2毫秒计算从1相加到10万,是很快的速度。

 

4)arraycopy()

数组的拷贝,从原数组复制一个长度和内容一样的新数组出来。

package otherclass;

import java.util.Arrays;

public class Demo1_System {

   public static void main(String[] args) {

     int[] src = {11,22,33,44,55}; //5个元素

     int[] dest = newint[8]; //8个元素

     //通过arraycopy方法,实现完整数组拷贝到新数组内

     System.arraycopy(src, 0, dest, 0, 5);

     for(inti=0; i < dest.length; i++) {

        System.out.print(dest[i]+ " ");

     }

   }

}

输出:11 22 33 44 55 0 0 0

 

调整起止和长度参数,再来使用这个数组拷贝方法。

package otherclass;

import java.util.Arrays;

public class Demo1_System {

   public static void main(String[] args) {

     int[] src = {11,22,33,44,55}; //5个元素

     int[] dest = newint[8]; //8个元素

     //通过arraycopy方法,实现完整数组拷贝到新数组内

     System.arraycopy(src, 1, dest, 4, 3);

     for(inti=0; i < dest.length; i++) {

        System.out.print(dest[i]+ " ");
     }

   }

}

 

输出:0 0 0 0 22 33 44 0

 

猜你喜欢

转载自blog.csdn.net/u011541946/article/details/80048702