认识-----System类与垃圾对象的回收
来源:互联网 发布:俄罗斯重工业知乎 编辑:程序博客网 时间:2024/05/17 04:27
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;}@Overridepublic String toString() {// TODO Auto-generated method stubreturn "姓名:" + this.name + ",年龄:" + this.age;}@Overrideprotected void finalize() throws Throwable { // 对象释放空间时默认调用此方法// TODO Auto-generated method stubSystem.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()); } }
从这个例子,可以总结出对象的生命周期,如:
0 0
- 认识-----System类与垃圾对象的回收
- 对象与垃圾回收
- 对象与垃圾回收
- 对象与垃圾回收
- 对象与垃圾回收
- 对象与垃圾回收:
- 对象与垃圾回收
- 对象与垃圾回收
- 对象与垃圾回收
- 对象与垃圾回收
- 对象的销毁与垃圾回收机制
- Java对象的引用与垃圾回收
- 与垃圾回收相关的新API:System.pauseForGCIfCollectionImminent()
- 与垃圾回收相关的新API:System.pauseForGCIfCollectionImminent()
- Java:对象与垃圾回收
- Java对象与垃圾回收
- Java - 对象与垃圾回收
- Java 对象与垃圾回收
- 认识-----国际化程序
- BitmapManager
- 39_leetcode_Merge Sorted Array
- 黑马程序员_正则表达式
- linux内核的设计模式
- 认识-----System类与垃圾对象的回收
- 一个类似真人视频秀的网址-欢迎进入真人视频秀!
- 黑马程序员_一个小程序的发现-关于#define与C的内存
- poj-2299
- 兽人帝国前线指挥部内,总指挥官拉斯多尼一脸悲痛,书迷们还喜欢
- 从一组时间列表中获取一组最近的时间
- 基于Linux环境Tomcat-MySQL的服务器搭建
- 黑马程序员_基础加强之类加载器
- SpeedPHP(在sae上部署)对于移动(android or ios)的访问支持