Java垃圾自动回收机制

59 篇文章 2 订阅

Java垃圾自动回收机制(GC, Garbage Collection)

在这里插入图片描述对象空间的分配:

使用new关键字创建对象即可

对象空间的释放:

将引用数据类型变量赋值null即可。垃圾回收器将负责回收所有“不可达”对象的内存空间。

在这里插入图片描述

现在的垃圾分类成为大家的很头疼的事情,需要自己识别,手动放入垃圾桶,就像传统C/C++语言中,程序猿需要负责自己回收已经分配内存,自己一点点管理内存,分配和释放,很是头大,我们也称之为显示垃圾回收。

  • 显式回收垃圾回收的缺点:

    ① 程序忘记及时回收,从而导致内存泄露,降低系统性能。

    ② 程序错误回收程序核心类库的内存,导致系统崩溃。

  • 但是Java具有非常强大垃圾回收机制。Java语言不需要程序员直接控制内存回收,是由JRE在后台自动回收不再使用的内存,称为垃圾回收机制(Garbage Collection)。

    ① 可以提高编程效率。

    ② 保护程序的完整性。

    ③ 其开销影响性能。Java虚拟机必须跟踪程序中有用的对象,确定哪些是无用的。

【示例】

for(int i=0;i<10000000;i++){
    byte [] data = new byte[1024*1024*1024];  //1KB --> 1MB  --> 1G
}
  • jvm虚拟机参数设置:(步骤: Window --> Preferences --> Java --> Install JREs --> Edit编辑 --> Default VM arguments 输入下一行的内容)

-Xms2048m -Xmx2048m -Xmn768m -XX:+PrintGCDetails

分别代表初始堆内存和最大堆内存都为2048m,年轻代768m,打印垃圾回收的数据

最大堆内存通常不能超过主机内存的50%,配置根据2的次方来计算 年轻代设为最大堆内存的3/8

初始堆内存尽量和最大堆内存保持一致,减少垃圾收集的频率(垃圾收集也会消耗内存和CPU)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

樂小伍

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

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

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

打赏作者

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

抵扣说明:

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

余额充值