System类是一些与系统相关属性和方法的集合,而且System类中所有的属性都是静态的,要想引用这些属性和方法,直接使用System类调用即可。
//================================================= // File Name : System_demo //------------------------------------------------------------------------------ // Author : Common //主类 //Function : System_demo public class System_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 long startTime = System.currentTimeMillis(); //取得开始计算之前的时间 int sum = 0; //累加操作 for(int i=0;i<300000000;i++){ sum += i; } long endTime = System.currentTimeMillis(); //取得开始计算之后的时间 System.out.println("计算所花费的时间:"+(endTime-startTime)+"毫秒"); System.getProperties().list(System.out); //列出系统的全部属性 System.out.println("系统版本为:"+System.getProperty("os.name")+System.getProperty("os.version")+System.getProperty("os.arch")); System.out.println("系统用户为:"+System.getProperty("user.name")); System.out.println("当前用户目录:"+System.getProperty("user.home")); System.out.println("当前用户工作目录:"+System.getProperty("user.dir")); } }
垃圾对象的回收
System类中也有一个rc()方法,此方法也可以进行垃圾的收集,而且此方法实际上是对Runtime类中的gc()方法的封装,功能与其类似。
对一个对象进行回收,一个对象如果不再被任何栈内存所引用,那么此对象就可以被成为垃圾对象,等待被回收。实际上,等待的时间是不确定的,所以可以直接调用System.gc()方法进行垃圾的回收。
System类对IO的支持
<1>System.out
System.out是PrintStream的对象,在PrintStream中定义了一系列的print()和println()方法
<2>System.err
System.err表示的是错误信息输出,如果程序出现错误,则可以直接使用System.err进行输出
<2>System.in
System.in实际上是一个键盘的输入流,其本身是InputStream类型的对象,可以利用System.in完成从键盘读取数据的功能。
指定空间的大小会出现空间限制,不指定大小则会在输入中文的时候产生乱码
package System; import java.io.InputStream; //================================================= // File Name : Systemin_demo //------------------------------------------------------------------------------ // Author : Common //主类 //Function : Systemin_demo System; public class Systemin_demo { public static void main(String[] args) throws Exception{ // TODO 自动生成的方法存根 InputStream input = System.in; //从键盘接收数据 byte b[] = new byte[1024]; //开辟空间,接收数据 System.out.println("请输入内容:"); int len = input.read(b); //接收数据 System.out.println("输入的内容:"+new String(b,0,len)); input.close(); } }
输入/输出重定向
通过System类也可以改变System.in的输入流来源和System.out和System.err两个输出流的输出位置