Java常用基础类:System

导读:本篇文章讲解 Java常用基础类:System,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Java常用基础类(五):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) ; // 列出系统的全部属性
    }
};

如果只需要取几个固定属性的话,则就可以通过以下取得:

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

在对象被回收之前调用,以处理对象回收前的若干操作,例如释放资源等等。

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() ; // 强制性释放空间
    }
};

只有断开引用赋值为null并调用gc()的时候才可以发现对象被回收释放。当然如果不调用,则系统也会在一定的时间内进行自动回收。


总结:

System类本身提供的静态属性都是与IO操作有关的。在IO操作中还会有更多System类的使用,可以使用system类取得计算时间,以及通过gc()方法进行垃圾收集 此方法是包装了Runtime类中的gc()方法。


最后

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97617.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!