![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM从入门到精通
文章平均质量分 94
火山九日啊
码出一片天
展开
-
JVM内存回收
JVM内存回收对象在Eden区分配大对象直接进入老年代长期存活的对象将进入老年代对象动态年龄判断老年代空间分配担保机制对象内存回收判断对象是否可回收的方法引用计数法可达性分析算法常见引用类型finalize()方法最终判定对象是否存活即使在可达性分析算法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处于“缓刑”阶段,要真正宣告一个对象死亡,至少要经历再次标记过程。如何判断一个类是无用的类如何判断一个常量是废弃常量何为深拷贝浅拷贝?java会出现内存泄漏?什么情况下会发生栈内存溢出?对象在Eden区原创 2021-09-28 11:12:07 · 238 阅读 · 0 评论 -
jvm对象创建和内存分配机制
jvm对象创建和内存分配机制对象创建的过程类加载检查分配内存分配内存的方法对象内存分配的流程栈内分配对象逃逸分析标量替换分配内存并发问题的解决初始化零值设置对象头对象头分为两个部分对齐填充什么是指针压缩?为什么要进行指针压缩?执行 方法对象创建的过程类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。new指令对应到语言层面上讲是,new关键词、对象原创 2021-09-27 14:57:28 · 148 阅读 · 0 评论 -
JVM内存模型简谈
JVM内存模型JVM的主要组成JVM内存模型图为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?java会出现内存泄漏?什么情况下会发生栈内存溢出?栈溢出StackOverflowError示例字符串常量池八种基本类型的包装类和对象池JVM的主要组成作用:首先通过编译器将.java文件编译成.class文件,类加载器再把字节码文件加载到内存中。将其放在运行时数据区的方法区中,而字节码文件只是jvm的一套指令规范,并不能直接交由底层操作系统去执行,而是需要特定的命令解析器执原创 2021-09-23 12:53:37 · 92 阅读 · 0 评论 -
什么是JVM?
一:JVM介绍JVM就是虚拟机,他是Java Virtual Machine的英文简称。它是java运行环境的一部分,是一个虚构出来的计算机,它是通过在实际的计算机上仿真模拟各种运算计算机功能来实现的。它可以使编译后的java字节码文件解释成具体平台上的机器码指令执行,所以也使得java语言具有跨平台性。二:JVM生命周期jvm实例的诞生(当启动一个java程序时,一个jvm实例就诞...原创 2020-04-10 01:40:59 · 208 阅读 · 0 评论