11.4 System 类(血干JAVA系列)

本文介绍了Java中的System类,包括如何计算程序执行时间、获取本机环境属性,以及垃圾对象的回收机制(如finalize()方法)和对象的生命周期管理。通过实例演示了如何使用这些功能进行内存管理和程序优化。
摘要由CSDN通过智能技术生成

11.4.1 认识 System 类

在这里插入图片描述
在这里插入图片描述

【例11.18】计算一个程序的执行时间

package jiaqi;

public class demo328_1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		long start = System.currentTimeMillis();
		int sum = 0;
		for(int i=0;i<30000000;i++)
		{
			sum+=i;
		}
		long end = System.currentTimeMillis();
		System.out.println(end-start+"ms");
	}

}

在这里插入图片描述

【例11.19]取得本机的全部环境属性

package jiaqi;

public class demo329_1 {

	public static void main(String[] args) 
	{
		System.getProperties().list(System.out);
	}
}

【例11.20】列出指定属性

package jiaqi;

public class demo329_2
{
	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.home"));
		System.out.println(System.getProperty("user.name"));
		System.out.println(System.getProperty("user.dir"));
	}
}

11.4.2垃圾对象的回收

在这里插入图片描述
在这里插入图片描述
但是,==如果在一个对象被回收之前要进行某些操作,==那么该怎么办呢?实际上,在Object类中有一个finalize()方法,此方法定义如下:

protected void finalize() throws Throwable

一个子类只需要覆写此方法就可以在释放对象之前进行某些操作。

【例11.21】观察对象释放

System.gc();时会调用finalize()

package jiaqi;

class Person
{
	private String name =null;
	private int age =0 ;
	
	public Person(String name,int age) 
	{
		this.name = name;
		this.age = age;
	}
	
	public String toString() 
	{
		return "name:" + this.name + " \t" + "age:" + this.age ;
	}
	
	@Override
	public void finalize() throws Throwable 
	{
		System.out.println("释放空间时自动调用finalize()");
	}
}

public class demo330_1 
{
	public static void main(String[] args)
	{
		Person per = new  Person("duyanhe",10);
		per = null;
		System.gc();
	}
}

11.4.3对象的生命周期

在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿斯卡码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值