System类

System类


System类是一些与系统相关的属性和方法的集合,而且在System类中所有的属性都是静态的,要想引用这些属性和方法,直接使用System类调用即可。
public static void exit(int status)  系统退出 ,如果status为0就表示退出。
public static void gc()   运行垃圾收集机制,调用的是Runtime类中的gc方法。
public static long currentTimeMillis()  返回以毫秒为单位的当前时间。
public static void arraycopy(Object src,int srcPos, Object dest,int desPos,int length) 数组拷贝操作
public static Properties getProperties() 取得当前系统的全部属性。
public static String  getProperty(String key) 根据键值取得属性的具体内容。


System类除了可以进行内容的输出外,还可以通过方法取得一个操作的具体时间。如下所示


public class SystemDemo01{  
    public static void main(String args[]){  
        long startTime = System.currentTimeMillis() ;   // 取得开始计算之前的时间  
        int sum = 0 ;           // 声明变量  
        for(int i=0;i<30000000;i++){ // 执行累加操作  
            sum += i ;  
        }  
        long endTime = System.currentTimeMillis() ; // 取得计算之后的时间  
        // 结束时间减去开始时间  
        System.out.println("计算所花费的时间:" + (endTime-startTime) +"毫秒") ;  
    }  
};  


除了此功能外还可以列出本机的全部系统属性:
public class SystemDemo02{  
    public static void main(String args[]){  
        System.getProperties().list(System.out) ;   // 列出系统的全部属性  
    }  
};  


此处取得的是全部的属性,如果现在只需要取几个固定属性的话,则就可以通过以下取得:
[java] view plain copy
public class SystemDemo03{  
    public static void main(String args[]){  
        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.gc()或者Runtime.getRuntime().gc()。但是,如果一个对象在回收之前需要做一些收尾工作,则就必须覆写Object类中的:
protected void finalize() throws Throwable
在对象被回收之前调用,以处理对象回收前的若干操作,例如释放资源等等。
[java] view plain copy
class Person{  
    private String name ;  
    private int age ;  
    public Person(String name,int age){  
        this.name = name ;  
        this.age = age;  
    }  
    public String toString(){   // 覆写toString()方法  
        return "姓名:" + this.name + ",年龄:" + this.age ;  
    }  
    public void finalize() throws Throwable{    // 对象释放空间时默认调用此方法  
        System.out.println("对象被释放 --> " + this) ;  
    }  
};  
public class SystemDemo04{  
    public static void main(String args[]){  
        Person per = new Person("张三",30) ;  
        per = null ;    // 断开引用  
        System.gc() ;       // 强制性释放空间  
    }  
};  




总结:


System类本身提供的静态属性都是与IO操作有关的。在IO操作中还会有更多System类的使用,可以使用system类取得计算时间,以及通过gc()方法进行垃圾收集   此方法是包装了Runtime类中的gc()方法。
版权声明
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章