您的位置:首页 > 其它

认识-----System类与垃圾对象的回收

2014-06-19 08:04 387 查看
System类

认识System类:

①System类是一些与系统相关属性和方法的集合,而且在System类中所有的属性和方法都是静态的。

②利用System类可以计算一个程序的执行时间,也可以取得本机的全部环境属性或者指定属性。

计算程序的执行时间:

package demo;

public classSystemDemo01 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
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) + "毫秒");
}

}


取得本机的全部属性

package demo;

public classSystemDemo02 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.getProperties().list(System.out);
}

}


列出本机的指定属性:

package demo;

public classSystemDemo03 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
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类中的gc()方法进行封装,也可以进行垃圾的收集。

如果一个对象被回收之前需要进行某些操作,则应该覆写Object类中的finalize()方法。

实例演示:

package demo;

public class Person {
private String name;
private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

@Override
public String toString() {
// TODO Auto-generated method stub
return "姓名:" + this.name + ",年龄:" + this.age;
}

@Override
protected void finalize() throws Throwable { // 对象释放空间时默认调用此方法
// TODO Auto-generated method stub
System.out.println("对象被释放-->" + this); // 直接打印对象调用toString
}
}


package demo;

public classSystemDemo04 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Personper = newPerson("张三", 30);
per= null;                         // 断开引用,释放空间
//System.out.println(Runtime.getRuntime().freeMemory());
System.gc();                        // 强制性释放空间
//System.out.println(Runtime.getRuntime().freeMemory());
}

}


从这个例子,可以总结出对象的生命周期,如:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: