摘要:唯一目的就是在对象被回收时,可以收到一个系统通知。小结引用强弱强软弱虚关于腾讯提前批,问了强弱引用的区别,直接蒙了。。
Java垃圾回收相关 对象的存活可以通过两种方式确定:
引用计数法
可达性分析法
其中可达性分析法中,可以作为GCroot Set中的对象主要包括:
1. 虚拟机栈(栈帧中的本地变量表)中引用的对象; 2. 方法区中静态属性引用的对象; 3. 方法区中常量引用的对象; 4. 本地方法栈中JNI引用的对象。引用(腾讯提前批。。。强行问了) 各种引用(强,软,弱,虚)
1.强引用
类似Object obj = new Object();
只要强引用还在,就永远不会被回收。
2.软引用
描述一些有用但并非必需的对象。在将要发生OOM之前,会把这些对象列进回收范围之中进行第二次回收,如果回收还没有足够内存,就抛OOM异常。
JDK1.2后提供了SoftReference来实现软引用。
3.弱引用
弱引用也是描述非必需对象的,但是他的强度比软引用更弱,被弱引用关联的对象只能生存到下一次垃圾回收之前。1.2之后提供了WeakReference。当gc时,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。
4.虚引用
最弱的引用关系,1.2之后用PhantomReference来实现,一个对象是否有虚引用,完全不影响其生产时间,也无法通过虚引用来获得一个对象的实例。唯一目的就是在对象被回收时,可以收到一个系统通知。
引用强弱:强>软>弱>虚
关于腾讯提前批,问了强弱引用的区别,直接蒙了。。
四大种
1.标记-清除
2.复制算法
3.标记-整理算法
4.分代收集算法
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76572.html
摘要:栈因为是运行单位,因此里面存储的信息都是跟当前线程相关的信息。基本类型和对象的引用都是在存放在栈中,而且都是几个字节的一个数,因此在程序运行时,他们的处理方式是统一的。对象,是由基本类型组成的。 一、概念 数据类型 java虚拟机中,数据类型可以分为两类: 基本类型 引用类型 基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。基本类型包括:byte,sh...
摘要:在架构中,堆内存和垃圾回收器这两个部分和垃圾回收相关。堆内存在的内存模型中,最重要的是要了解堆内存的概念。在垃圾回收的过程中,这些对象将被从堆内存中清除,同时它们的空间也就被回收了。 本文非原创,翻译自Java Garbage Collection introduction在Java中为对象分配和释放内存空间都是由垃圾回收线程自动执行完成的。和C语言不一样的是Java程序员不需要手动写...
摘要:广告位出售垃圾回收机制浅析与理解对垃圾回收进行分析前,我们先来了解一些基本概念基本概念内存管理内存管理对于编程语言至关重要。里面的变量通常是局部变量函数参数等。 GC(@广告位出售)垃圾回收机制: 浅析与理解 对垃圾回收进行分析前,我们先来了解一些基本概念 基本概念 内存管理:内存管理对于编程语言至关重要。汇编允许你操作所有东西,或者说要求你必须全权处理所有细节更合适。C 语言中虽然...
阅读 2336·2021-11-24 11:16
阅读 2022·2021-09-30 09:47
阅读 1995·2021-09-10 10:51
阅读 1316·2019-08-30 14:08
阅读 3133·2019-08-30 13:47
阅读 1520·2019-08-30 13:02
阅读 3227·2019-08-29 12:29
阅读 3178·2019-08-26 17:05