System类
计算代码的执行时间
进行垃圾收集操作
System.arraycopy();数组拷贝
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
取得当前系统时间(统计方法执行时间) 返回以毫秒为单位的时间
public static long currentTimeMillis()
public static void gc()这个方法不是一个新的方法,而是间接的调用了Runtime中的gc()
对象的产生一定会调用类中的构造方法,做一些处理操作,但是某一个对象要被回收了,收尾的机会都没有;
如果需要给对象一个收尾的机会,可以考虑覆写Object类中的finalize()完成;
protected void finalize()throws Throwable
在对象回收时就算抛出任何的异常,也不会影响到整个程序的正常执行;
*构造方法时给对象初始化的时候使用的,而finalize()方法时留给对象回收前使用的;
final finally finalize的区别
final 关键字,定义不能被继承的类,不能被覆写的方法和常量
finally 关键字,异常的统一出口;
finalize 方法,Object提供的方法;
protected void finalize()throws Throwable
指的是对象被回收前的的收尾方法,即使抛出任何的异常,也不会影响到整个程序的正常执行;
System 对IO的支持
输出错误
public final static PrintStream err = null;
输出到标准输出设备(显示器)
public final static PrintStream out = null;
从标准输入设备中输入(键盘)
public final static InputStream in = null;
严格来讲System.err的功能是完全一样的;
设计之初的原因是想用err来输出不想让用户看见的信息,用out输出可以让用户看见的信息;现在基本不去区分了;
信息输出System.out是java之中专门准备的支持屏幕输出信息的操作对象;(此对象由系统实例化)
//带来的问题:输入中文会出现乱码(InputStream每次读取的是一个字节)处理中文不方便
InputStream in = System.in;
System.out.println("请输入信息");
StringBuffer sb=new StringBuffer();
int lenght;
while((lenght=in.read())!=-1) {
if(lenght=='\n') {
break;
}
sb.append((char)lenght);
}
System.out.println(sb);
System类中的IO的各种操作实际中并不会过多使用,
需要清楚System.out的使用时PrintStream类对象进行的标准输出设备显示的;