![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 93
静看º一季花开花落
这个作者很懒,什么都没留下…
展开
-
JVM-垃圾收集器之G1
G1垃圾回收器原创 2023-05-13 17:18:40 · 689 阅读 · 0 评论 -
JVM-垃圾收集器之CMS
自 Sun 发布 Java 语言以来,开始使用GC 技术来进行内存自动管理,避免了手动管理带来的悬挂指针(Dangling Pointer)问题,很大程度上提升了开发效率。 但GC 问题处理能力能不能系统性掌握?一些影响因素都是互为因果的问题该怎么分析?比如一个服务 RT 突然上涨,有GC 耗时增大、线程 Block 增多、慢查询增多、CPU 负载高四个表象,到底哪个是诱因?如何判断 GC 有没有问题?使用 CMS 有哪些常见问题?如何判断根因是什么?原创 2023-05-13 17:17:04 · 1008 阅读 · 0 评论 -
JVM-垃圾回收机制
为了更好的内存动态分配,Java引入了自动垃圾回收。垃圾收集主要是针对堆和方法区进行;程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。 重新标记阶段会STW,以此保证标记结果的正确性(主要是漏标)。并发清理阶段产生的垃圾会被当做浮动垃圾,只能留待下一次GC被清理。原因是只要在并发清理阶段产生的对象,直接就认为是黑色对象,全部都不是垃圾。原创 2023-05-11 18:30:23 · 830 阅读 · 0 评论 -
JVM内存结构详解
栈是运行时的单位,而堆是存储的单位。栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数据存储的问题,即数据怎么放、放在哪。JVM 在进行 GC 时,并非每次都对堆内存(新生代、老年代;方法区)区域一起回收的,大部分时候回收的都是指新生代。针对 HotSpot VM 的实现,它里面的 GC 按照回收区域又分为两大类:部分收集(Partial GC),整堆收集(Full GC)。部分收集:不是完整收集整个 Java 堆的垃圾收集。原创 2023-05-10 18:10:34 · 877 阅读 · 1 评论 -
JVM-类加载机制
JVM类加载机制原创 2023-05-09 17:59:37 · 515 阅读 · 0 评论 -
JVM-字节码详解
在cpu层面看来,计算机中所有的操作都是一个个指令的运行汇集而成的,java是高级语言,只有人类才能理解其逻辑,计算机是无法识别的,所以java代码必须要先编译成字节码文件,jvm才能正确识别代码转换后的指令(机器码)并将其运行。Java代码间接翻译成字节码,储存字节码的文件再交由运行于不同平台上的JVM虚拟机去读取执行,从而实现一次编写,到处运行的目的。JVM也不再只支持Java,由此衍生出了许多基于JVM的编程语言,如Groovy, Scala, Koltin等等。原创 2023-05-09 16:38:55 · 737 阅读 · 0 评论