永刚的点滴成长

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

判断一个对象是否为垃圾: 该对象没有被其他对象所引用.

判定对象是否被引用的算法: 引用计数法,可达性分析算法.

可以作为GC Root的对象:

  1 虚拟机栈中引用的对象(栈帧中的本地变量表)

  2 方法区中常量引用对象

  3 方法区中类静态引用的对象

  4 本地方法栈JNI(Native方法)中引用的对象

  5 活跃线程的引用对象

Object的 finalize方法和C++的析构函数的作用是否相同:

  与析构函数不同,析构函数调用确定,而他是不确定性的

  未被引用的对象放置于F-Queue队列

  方法执行可能随时被终止

  给予对象最后一次重生的机会

java中的强引用,软引用,弱引用,虚引用有什么用:

  强引用:最普遍的引用,即使抛出内存溢出异常也不会回收强引用的对象,通过将对象设置未null来弱化引用,使其被回收

  软引用:标识对象处在有用但非必须的状态,当内存空间不足时会回收该对象,可以用来实现内存敏感的高速缓存

  弱引用:非必须对象,比软引用更弱一些,GC时会被回收,被回收的概率不大,主要是应为垃圾回收线程的优先级较低,适用于偶尔被使用但又不影响垃圾收集的对象

  虚引用:不会决定对象的生命周期,任何时候都可能被垃圾收集器回收.主要用来被垃圾回收期回收的活动,起哨兵的作用,必须和引用队列联合使用

  四种引用级别的由高到底依次为:强-软-弱-虚

  引用队列:无实际存储结构,存储逻辑依赖于内部节点之间的关系来表达.存储关联的且被GC的软弱虚引用

垃圾收集器汇总:

  新生代的垃圾收集器:Serial(复制算法),ParNew(复制算法),ParallelScavenge(复制算法)

  老年代垃圾收集器:CMS(标记清除),SerialOld(标记整理),ParallelOld(标记整理)

  横跨新生代和老年代的收集器 G1,在JDK8默认是Parallel Scavenge(新生代)+ Serial Old(老年代)JKD9默认G1

posted on   永刚的点滴成长  阅读(63)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
 
点击右上角即可分享
微信分享提示