随笔分类 - JVM
摘要:在《深入理解Java虚拟机中》关于Java堆内存有这样一段对逃逸分析的描述: 那么究竟怎么理解逃逸分析?我们先来看一个例子 运行期优化示例 两层循环,内层循环创建1000次对象,外层循环对内层循环进行计时统计。 public class JIT1 { public static void main(
阅读全文
摘要:JVM 的内存布局(内存结构)? Java运行时数据区:Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。 根据《Java虚拟机规范》的规定,
阅读全文
摘要:JVM?JDK?JRE?关系? JDK(Java Development Kit),它是实际上存在的,它包含JRE+编译、运行等开发工具. JRE(Java Runtime Environment),它用于提供运行时环境。它是JVM的实现。它是实际存在的。它包含一组系统类库和JVM。 JVM是什么?
阅读全文
摘要:从如何判定对象消亡的角度出发,垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类,这两类也常被称作“直接垃圾收集”和“间接 垃圾收集”。由于引用计数式垃圾收集算法在本书讨论到的主流Java虚拟机中均未涉及,所以
阅读全文
摘要:从 Java 代码到 CPU 指令 我们都知道,编写的 Java 代码,最终还是要转化为 CPU 指令才能执行的。为了理解 Java 内存模型的作用,我们首先就来回顾一下从 Java 代码到最终执行的 CPU 指令的大致流程: (1)最开始,我们编写的 Java 代码,是 *.java 文件; (2
阅读全文
摘要:类的加载过程? 一个Java文件从编码完成到最终执行,一般主要包括”编译”和”运行”两个过程.编译,即把我们写好的java文件,通过javac命令编译成字节码,也就是我们常说的.class文件。运行,则是把编译生成的.class文件交给Java虚拟机(JVM)执行。而类加载过程即是指JVM虚拟机把.
阅读全文
摘要:GC是什么?为什么要有GC? GC(Garbage Collection)是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,垃圾回收的执行速度则影响着整个程序
阅读全文