
JVM
文章平均质量分 94
Integer_Double
这个作者很懒,什么都没留下…
展开
-
JVM系列十一——垃圾收集器
文章目录一、介绍一、介绍垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法、火车算法)的具体实现,不同种类JVM所提供的垃圾收集器可能会有很大差别,HotSpot虚拟机中的8种垃圾收集器:Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1、ZGC...原创 2021-03-05 15:30:27 · 258 阅读 · 1 评论 -
JVM系列十——GC概述
文章目录一、GC回收哪些内存区域一、GC回收哪些内存区域原创 2021-03-04 14:05:44 · 142 阅读 · 1 评论 -
JVM系列九——方法执行与方法调用
二、方法调用方法调用不同于方法执行,方法调用阶段的唯一任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。Class文件的编译过程中不包括传统编译器中的连接步骤,一切方法调用在Class文件里面存储的都是符号引用,而不是方法在实际运行时内存布局中的入口地址(直接引用)。也就是需要在类加载阶段,甚至到运行期才能确定目标方法的直接引用。静态链接:当一个字节码文件被装在进JVM内存时,如果被调用的目标方法在编译期可知,且运行期保持不变时,这种情况下将调用方法的符号引用转换为原创 2021-03-02 12:06:20 · 475 阅读 · 2 评论 -
JVM系列八——栈
文章目录一、Java虚拟机栈1.1 局部变量表一、Java虚拟机栈虚拟机栈线程私有,生命周期与线程相同,每个Java方法在执行时都会创建一个栈帧(Stack Frame)。栈帧是用于虚拟机执行时方法调用和方法执行时的数据结构,它是虚拟机栈的基本元素。每一个方法从调用到返回都对应着一个栈帧入栈出栈的过程。最顶部的栈帧称为当前栈帧,栈帧所关联的方法称为当前方法,定义这个方法的类称为当前类,当前线程中虚拟机只会对当前栈帧进行操作。栈帧的作用有存储数据,部分过程结果,处理动态链接,方法返回值和异常分派。原创 2021-02-24 15:32:40 · 180 阅读 · 0 评论 -
JVM系列七——堆
文章目录一、堆内存划分二、对象创建过程2.1 内存分配方式2.2 内存分配安全问题三、对象的内存布局3.1 对象头3.2 实例数据3.3 对齐填充3.4 Object o = new Object()在内存中占了多少字节?四、对象的访问方式4.1 句柄访问方式4.2 直接指针访问方式4.3 优势对比五、数组的内存分析5.1 一维数组5.2 二维数组一、堆内存划分堆被划分为新生代和老年代,默认比例为1:2新生代被划分为一个Eden和两个 Survivor,默认比例为8:1:1细粒度划分堆内存是为了原创 2021-02-20 16:26:03 · 149 阅读 · 4 评论 -
JVM系列六——方法区(Method Area)
文章目录一、存储内容一、存储内容原创 2021-02-19 17:28:40 · 243 阅读 · 1 评论 -
JVM系列五——运行时数据区概述
文章目录一、JVM运行时数据区规范二、分配JVM内存空间2.1分配堆的大小2.2分配方法区的大小2.3 分配线程空间的大小三、程序计数器(PC寄存器)3.1 概念3.2 性质3.3 作用一、JVM运行时数据区规范Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个不同的数据区域。这些区域有着各自的用途,一级创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》中规定,jvm所管理的内存大致包括以下几个运行时数据区域,原创 2021-02-18 16:26:50 · 169 阅读 · 0 评论 -
JVM系列四——类加载详解
文章目录一、类加载的时机一、类加载的时机原创 2021-02-09 15:16:10 · 175 阅读 · 0 评论 -
JVM系列三——class文件详解
文章目录一、class文件概述一、class文件概述原创 2021-02-04 14:18:02 · 495 阅读 · 1 评论 -
JVM系列二——JIT使用及优化
文章目录一、JIT使用1.1 为什么HotSpot需要使用解释器和编译器并存的架构1.1.1解释器与编译器的特点1.1.2 编译的时间开销1.1.3 编译的空间开销1.2 为何要实现两个不同的即时编译器二、JIT优化2.1 公共子表达式的消除2.2方法内联2.3 逃逸分析一、JIT使用1.1 为什么HotSpot需要使用解释器和编译器并存的架构尽管并不是所有的Java虚拟机都采用解释器与编译器并存的架构,但许多主流的商用虚拟机(如HotSpot),都同时包含解释器和编译器。1.1.1解释器与编译器的原创 2021-02-02 14:58:13 · 1355 阅读 · 1 评论 -
JVM系列一——JVM基本常识
这里写自定义目录标题一、什么是JVM1.1JDK、JRE与JVM的关系1.1.1 OracleJDK与OpenJDK1.1.1.1 OpenJDK 的来历1.1.1.2 Oracle JDK的来历1.1.2 OracleJDK与OpenJDK1.1.3 JVM和Java的关系1.1.4 JVM的运行模式二、JVM架构理解一、什么是JVM如图,java程序需要编译器,编译成字节码。再由JVM解释器,再转成对应系统的机器码在不同的操作系统执行,最大的好处是实现了跨平台。说明:机器码是电脑CPU直接读取原创 2021-02-01 14:49:37 · 211 阅读 · 0 评论