JAVA垃圾回收

今天我们谈一谈JAVA中的垃圾回收

你好WO SHI 奇卡雨言 ^ _ ^

大家好,暑假终于来了,终于轻松了,我又可以继续更新了,话不多说,我们开始。
在JAVA中,当一个对象成为垃圾后仍会占用空间,时间长了就会垃圾成山,我们的内存也岌岌可危。针对这种情况,JAVA引入了垃圾回收机制。程序员不需要担心垃圾回收问题。JAVA虚拟机会自动回收垃圾所占用的内存空间。

除了等待JAVA虚拟机进行自动垃圾回收外,还可以通过调用 System.gc()的方法来通知JAVA虚拟机立即进行垃圾回收。当一个对象被释放时,finalize就会被自动调用,因此,我们可以将finalize作为镜子来看对象是否还是何时被释放。我们演示一下。

class rabbish{
	public void finalize() {
		System.out.println("垃圾已被回收。。。。");
	}
}
public class rabbishback {
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		rabbish p1 = new rabbish();
		rabbish p2 = new rabbish();
		rabbish p3 = new rabbish();
		p1 = null;
		p2 = null;
		p3 = (rabbish)null;
		System.gc();
	}
}

注意:该方法的返回值必须是**void**,并且用public

1.在代码中创建了两个对象p1 p2和p3(进行了强制类型转换),然后将两个变量设置为null,这就意味着新创建的三个对象为垃圾

2.接着通过System.gc();语句通知虚拟机进行垃圾回收。

3.JAVA虚拟机是后台运行,操作会随程序的结束而终止。

4.两种情况会被java虚拟机视为“垃圾”
{对象引用超过其作用范围,这个对象将被视为垃圾
{将对象复制为null

5.System.gc()方法强制启动垃圾回收器

注意finalize() 方法并不保证一定会发生。如果java 虚拟机内存消耗殆尽,他将不会执行垃圾回收处理

在这里插入图片描述

希望对你在学习 JAVA 的道路上提供一点点帮助。谢谢,

WO SHI 奇卡雨言^ _ ^ 如果代码对你有帮助还希望 点赞+关注
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

奇卡雨言

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

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

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

打赏作者

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

抵扣说明:

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

余额充值