
jvm
鸭梨山大哎
life hard take it easy
展开
-
class类文件结构
class文件是什么?Class文件是一组以 8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件中,中间没有添加任何分隔符,这使得整个 Class 文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。...原创 2021-11-14 11:43:20 · 1078 阅读 · 0 评论 -
分代收集理论
什么是分代?当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(Generational Collection)的理论进行设计,所谓分代,就是将Java堆划分出不同的区域,然后将回收对象依据其年龄(年龄即对象熬过垃圾收集过程的次数)分配到不同的区域之中存储。分代的目的?分代的目的是垃圾收集器可以更快的收集“死掉”的对象。 如何判定对象已死?请参考 https://cloud.tencent.com/developer/article/1694697如何分代?HotSpot JVM 将堆分为年轻原创 2021-11-13 10:59:15 · 1252 阅读 · 0 评论 -
JVM 和 HotSpot 的区别?
一个Java虚拟机(JVM)是从未被物理建成硬件假想计算机。JVM 运行编译成其虚构指令集的程序,该指令集作为称为字节码的中间表示写入存储。在运行时,字节码必须从虚构的指令集转换为主机 CPU 的实际指令集。这可以由口译员即时完成。或者字节码可以被完全编译和缓存,以比通过解释器运行得更快,在一个称为即时 (JIT) 编译的过程中。几十年来,有许多JVM 的实现。大多数都已经消失了。HotSpot是 JIT 技术的一种实现,它从运行解释开始,并观察应用程序的实际性能。然后选择应用程序的某些部分作为本机代原创 2021-11-13 09:40:50 · 4190 阅读 · 0 评论 -
JVM的内存划分
JVM的内存区域分为线程私有区域(程序计数器、虚拟机栈、本地方法区)、线程共享区域(堆、方法区)和直接内存,如图1-2所示。线程私有区域的生命周期与线程相同,随线程的启动而创建,随线程的结束而销毁。在JVM内,每个线程都与操作系统的本地线程直接映射,因此这部分内存区域的存在与否和本地线程的启动和销毁对应。线程共享区域随虚拟机的启动而创建,随虚拟机的关闭而销毁。直接内存也叫作堆外内存,它并不是JVM运行时数据区的一部分,但在并发编程中被频繁使用。JDK的NIO模块提供的基于Channel与Buffer原创 2021-06-24 09:44:36 · 733 阅读 · 0 评论