Java提高——Java的内存回收(1)

Java引用的种类

当程序员通过new关键字创建对象,即视为为Java对象申请内存空间。JVM会在堆内存中为每个对象分配空间;当一个对象失去引用的时候,JVM垃圾回收机制会自动清除他们,并回收他们所占用的内存空间。

Java内存管理包括内存分配(创建Java对象的时候)和内存回收(回收 Java对象的时候)两个方面。

JVM垃圾回收机制是否回收一个对象的标准:是否有引用变量引用该对象?

 

class Nod{
    Nod next;
    String name;

    public Nod(String name) {
        this.name = name;
    }
}
public class NodeTest {
    public static void main(String[] args) {
        Nod n1 = new Nod("第一个节点");
        Nod n2 = new Nod("第二个节点");
        Nod n3 = new Nod("第三个节点");
        n1.next = n2;
        n2 = null;
        n3 = n2;
    }
}

JVM的垃圾回收机制采用有向图的方式来管理内存中的对象。程序的有向图:

有向图现实只有“节点3”处于不可达状态,因此JVM的垃圾回收机制将会回收它。

对象在堆内存中对应的有向图的状态:可达状态、可恢复状态、不可达状态

 

Java语言对对象的引用方式:强引用、软引用、弱引用、虚引用

强引用:<

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值