JVM
文章平均质量分 84
JVM
波波老师
初心易得,始终难守!愿成长的路上不忘初心!
展开
-
finalize方法是什么,对象如何利用它复活?
写在前面的话读者您好,本人目前同时在经营CSDN和微信公众号,希望小伙伴们能够给予支持,关注一下我的微信公众号,公众号是每天都会推送新文章,CSDN不定期发表新文章。文末有公众号二维码,可以扫码关注,或者微信直接搜索“波波Tea”,带哪吒头像的那个就是我,谢谢!即使在可达性分析算法中判定为不可达的对象,也不是“非死不可”的,这时候它们暂时还处于“缓刑”阶段,要真正宣告一个对象死亡,第一个条件是对象在进行可达性分析后发现没有与GC Roots相连接的引用链。如果对象满足第一个条件,那它将.原创 2020-12-07 11:26:30 · 779 阅读 · 0 评论 -
JVM知识点梳理
1、主要内容:jvm内存模型,以及java7到java8的内存结构变化【Java千问】你了解Java内存结构么(Java7、8、9内存结构的区别)2、主要内容:jvm内存区域划分JVM内存:年轻代、老年代、永久代(推荐 转)3、主要内容:jvm调优参数[jvm][面试]JVM 调优总结4、主要内容:jvm内存区域划分的一些名词解释JVM内存区域划分Eden Space、...原创 2020-02-23 12:02:02 · 493 阅读 · 0 评论 -
String s=new String(“abc“)创建了几个对象?
字符串常量池和运行时常量池是两个不同的概念。运行时常量池存储的是类的字面量,是每个类独有的,而字符串常量池存储的是字符串字面量,是所有类共享的。JDK1.7字符串常量池在方法区,JDK1.7之后字符串常量池就转移到了堆区。原创 2021-03-05 12:44:24 · 6323 阅读 · 11 评论 -
浅谈Java对象内存布局与访问定位
java对象在内存中的创建过程;java对象在内存中是如何布局的;java对象头是什么;如何在内存中访问到一个java对象;如何在内存中访问到一个java对象的Class对象原创 2020-12-15 13:14:27 · 665 阅读 · 0 评论 -
从字节码的角度理解i++、++i和i++ + ++i
对于i++ + ++i来说,假设i=10,那么从前往后分析,i++即将i的值加1,i此时为11,但i++这个表达式的值是10,对于++i,也是将i的值加1,但此时i的值已经是11了,再加1的话是12,且整个表达式的值就是12,那么最终结果就是10+12=22。本文主要分析i++、++i和i++ + ++i的结果,这些也是面试题中最常考的,但有的读者可能总是记不住,原因就在于读者未能深入到字节码层面做进一步的研究,本文将从字节码的角度探索此类语法的奥秘。再来分析++b,对应字节码的第8到第15行。原创 2022-08-20 15:29:55 · 1440 阅读 · 0 评论 -
浅谈JVM中常见的垃圾回收器
如果说垃圾回收算法是垃圾回收的方法论,那垃圾回收器就是垃圾回收的实践者。没有万能的收集器,只有针对具体应用最合适的收集器。就目前来说,CMS和G1这两款收集器相对复杂但使用广泛。原创 2020-12-22 13:03:02 · 291 阅读 · 0 评论 -
面试必备 JVM中垃圾回收用到的三色标记法
本文主要介绍Java虚拟机中三色标记法的具体应用。也许读者在看本文之前,未曾听过三色标记,或者只是听过却不知道它的原理,三色标记法你可以理解为它只是一个方法,像,所以我们接下来要讨论一下,它是怎么用的,可以解决什么问题?原创 2022-08-24 07:30:00 · 537 阅读 · 0 评论 -
浅谈JVM类加载细节
ClassLoader类java.lang.ClassLoader类就是类加载器,是一个抽象类。如果开发人员要编写自己的类加载器,就必须直接或间接地继承这个类,java虚拟机在类加载时机会调用defineClass方法加载字节码文件进入jvm内存中,并创建对应的Class对象。类加载过程加载查找字节码文件,并创建一个Class对象。验证目的在于确保class文件的字节...原创 2018-03-31 19:10:12 · 365 阅读 · 0 评论 -
标记复制法、标记清除法和标记整理法的区别
分代收集理论;标记-复制算法;标记-清除算法;标记-整理算法。原创 2020-12-07 17:41:56 · 6125 阅读 · 0 评论 -
Java中如何判断对象能否被回收?
虽然finalize方法能够拯救对象,但建议大家尽量避免使用它,因为它并不能等同于C和C++语言中的析构函数,而是Java刚诞生时为了使传统C、C++程序员更容易接受Java所做出的一项妥协。它的运行代价高昂,不确定性大,无法保证finalize一定会被执行,也无法保证各个对象的调用顺序,如今已被官方明确声明为不推荐使用的语法。子类可以重写finalize方法关闭外部资源或执行其他清理,但finalize()能做的所有工作,使用try-finally或者其他方式都可以做得更好、更及时。原创 2020-12-07 11:16:03 · 569 阅读 · 0 评论 -
垃圾回收的主要区域是堆,那方法区会回收吗?
有些人认为方法区(如HotSpot虚拟机中的元空间或者永久代)是没有垃圾收集行为的,《Java虚拟机规范》中提到过可以不要求虚拟机在方法区中实现垃圾收集,事实上也确实有未实现或未能完整实现方法区类型卸载的收集器存在(如JDK 11时期的ZGC收集器就不支持类卸载)。方法区垃圾收集的“性价比”通常也是比较低的。原创 2020-12-07 17:34:02 · 1971 阅读 · 4 评论 -
java是解释执行还是先编译后执行?
java是解释执行还是先编译后执行?java -version的输出;Hotspot虚拟机的两种模式:server模式和client模式;java解释器和编译器共存;JIT即时编译器原创 2020-12-15 13:04:46 · 2988 阅读 · 2 评论