认识-----System类与垃圾对象的回收
2014-06-19 08:04
387 查看
System类
认识System类:
①System类是一些与系统相关属性和方法的集合,而且在System类中所有的属性和方法都是静态的。
②利用System类可以计算一个程序的执行时间,也可以取得本机的全部环境属性或者指定属性。
计算程序的执行时间:
取得本机的全部属性
列出本机的指定属性:
③垃圾对象的回收
System类中存在一个gc方法,它实际上是对Runtime类中的gc()方法进行封装,也可以进行垃圾的收集。
如果一个对象被回收之前需要进行某些操作,则应该覆写Object类中的finalize()方法。
实例演示:
从这个例子,可以总结出对象的生命周期,如:
认识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()); } }
从这个例子,可以总结出对象的生命周期,如:
相关文章推荐
- 常见对象_System类中垃圾回收的方法gc()的应用
- Java垃圾回收时对对象的标记分析
- 垃圾回收之对象的死亡过程
- 对象清除与垃圾回收
- JAVA 对象被垃圾回收后其成员变量可用吗?
- 两个互相引用对象的垃圾回收
- PHP5的对象传递和垃圾回收机制
- java垃圾回收策略及对象管理机制
- 图解JVM在内存中申请对象及垃圾回收流程
- c# -- 对象销毁和垃圾回收
- Java基础复习笔记 对象状态、引用种类、垃圾回收形式02
- Flex和AIR中的垃圾回收实践之对象缓存[译文]
- JVM内存回收区域+对象存活的判断+引用类型+垃圾回收线程
- C++的垃圾回收——以对象管理内存
- Java 对象与垃圾回收
- Java对象垃圾回收
- 各种垃圾回收器、对象分配内存原则、GC参数
- 研究垃圾回收机制,计算对象创建占用的内存
- spring启动后保证创建的对象不被垃圾回收器回收
- .net学习之类与对象、new关键字、构造函数、常量和只读变量、枚举、结构、垃圾回收、静态成员、静态类等