
JVM
文章平均质量分 94
chun_soft
再忙也不要忘记学习!
展开
-
JVM 性能优化
1、重新认识 JVM JVM的大体物理结构图: 如上面架构图所示,JVM分为三个主要子系统: (1)类加载器子系统(Class Loader Subsystem); (2)运行时数据区(Runtime Data Area); (3)执行引擎(Execution Engine)。 1.1 类加载器子系统(Class Loader Subsystem) Java的动态类加载功能由类加载器子系统处理,处理过程包括加载和链接,并在类文件运行时,首次引用类时就开始实例化类文件,而不是在编译时进行。 1.1.1 加原创 2021-02-18 18:08:46 · 718 阅读 · 0 评论 -
JVM 垃圾回收
1、如何确定一个对象是垃圾对象 要想进行垃圾回收,得先知道什么样的对象是垃圾。 1.1 引用计数法 对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。 弊端:如果AB相互持有引用,导致永远不能被回收。 例如: public class Main { public static void main(String[] args) { MyObject object1 = new MyObject(); M原创 2021-02-18 17:27:49 · 409 阅读 · 0 评论 -
Java虚拟机栈和内存模型
1、结合字节码指令理解Java虚拟机栈和栈帧 栈帧:每个栈帧对应一个被调用的方法,可以理解为一个方法的运行空间。 每个栈帧中包括局部变量表(Local Variables)、操作数栈(Operand Stack)、指向运行时常量池的引用(A reference to the run-time constant pool)、方法返回地址(Return Address)和附加信息。 局部变量表:方法中定义的局部变量以及方法的参数存放在这张表中,局部变量表中的变量不可直接使用,如需要使用的话,必须通过相关指令原创 2021-02-18 16:07:05 · 19223 阅读 · 1 评论 -
Java 代码编译和执行的整个过程
1、JDK/JRE/JVM之间的关系 JVM:Java Virtual Machine(Java虚拟机),包含了Java最核心的类库。 JRE:java runtime environment (java运行环境),包含了JVM和一些常见的Java运行类库,即JRE=JVM+常见运行类库。最大特点:安装了JRE之后,只能运行java程序,但不能开发java程序。因为JRE中没有包含开发者编译Java的相关工具。安装好的JRE文件夹内包含bin和lib两个文件夹,其中bin就是JVM,lib是Java核心类库原创 2021-02-05 17:48:13 · 694 阅读 · 1 评论