jvm 内存管理(初见)

来源:互联网 发布:2017大数据试题及答案 编辑:程序博客网 时间:2024/05/18 00:18

java内存泄露即是:对象可达,但是对象没有使用,gc不会回收该对象,但是对象又会占用内存,所以会造成内存不够,如果对象没有被引用,即对象没用,则会被gc在不定时间进行垃圾回收

java jvm内存管理大概分为两种情况,

1.有向图的方式进行内存管理(即对象是否可达)。

大多数情况下通过main函数能够访问到对象即为有效对象,gc不会回收,如果不能访问到的对象,即会被gc回收。

特点:效率低,精度高

2.通过计数器的方式进行内存管理

jvm跟踪每个对象,判断对象被引用的次数,如果次数为0则被回收。

特点:效率高,精度低(很难判断循环引用:例如A对象引用了B对象,B对象引用了A对象)


一些方法:

1.在别写代码时当引用的对象使用完毕,即将引用设置为null,使其引用的对象为无用对象,这样gc进行垃圾回收

2.尽量避免对象循环引用

3.利用工具跟踪判断内存中对象使用情况

0 0
原创粉丝点击