深入理解JVM
发呆的卤蛋
这个作者很懒,什么都没留下…
展开
-
JVM(七)—— 虚拟机类加载机制
虚拟机类加载机制7.1 概述虚拟机的类加载机制:虚拟机把描述类的Class文件中的数据读取到内存中,然后对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的Java类型。Java语言中,类型的加载、连接和初始化都是在运行期间完成的,缺点是增加了性能开销,优点是为Java程序提供了高度的灵活性,Java语言的动态扩展性依赖于动态加载和动态连接。例如:如果一个Java程序是面向接...原创 2019-11-08 21:27:19 · 120 阅读 · 0 评论 -
JVM(六)—— 类文件结构
类文件结构6.1 概述在过去是将高级编程语言编译称本地机器码,然后由机器执行,由于机器码依赖于操作系统和机器指令集,所以不能实现“一处编译,到处运行”,后来产生了一种与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。6.2 无关性6.2.1 平台无关性虚拟机可以载入一种与平台无关的字节码,实现了“一处编译,到处运行”。各种不同平台的虚拟机与所有平台都统一使用的程...原创 2019-10-28 23:45:38 · 120 阅读 · 0 评论 -
JVM(三)——内存分配与回收策略
内存分配和回收策略原创 2019-10-27 23:16:24 · 123 阅读 · 0 评论 -
JVM(三)—— 垃圾收集器参数总结
垃圾收集器参数总结参数描述UseSerialGC虚拟机运行在Client模式下的默认值,打开此开关后,使用Serial + Serial Old的收集器组合进行回收UseParNewGC打开此开关后,使用ParNew + Serial Old 的收集器组合进行内存回收UseConcMarkSweepGC打开此开关后,使用ParNew + CMS + Seri...原创 2019-10-27 22:31:44 · 108 阅读 · 0 评论 -
JVM(三)—— 垃圾收集器
垃圾收集器原创 2019-10-27 19:16:48 · 133 阅读 · 0 评论 -
JVM(三)—— 垃圾收集算法
垃圾收集器与内存分配策略3.1 概述垃圾收集器(GC)是比Java语言更早的出现。对于Java虚拟机运行时数据区的程序计数器、虚拟机栈和本地方法栈是线程私有的,也就是说是随着线程的创建而创建,随线程的销毁而销毁,所以它们属于自动垃圾回收。对于Java堆和方法区(非堆,老年代)是线程共享的,随着虚拟机的启动而创建,所以需要进行垃圾回收。3.2 对象的死亡判断对象是否还活着可以使用引用...原创 2019-10-23 22:04:16 · 92 阅读 · 0 评论 -
JVM(二)—— Java内存溢出异常
Java虚拟机规范中除了程序计数器,其余的包括虚拟机栈、本地方法栈、堆、方法区和运行时常量池都会出现堆内内溢出异常。Java堆内存异常异常种类?OutOfMemoryError异常何时产生堆内存溢出异常?Java堆是存放对象实例的,只要是不断的创建新的对象,并且保证在对象和GC Roots之间有可达路径能保证避免被垃圾回收机制清楚这些对象,那么堆中的对象就会越来越多,超过了堆的...原创 2019-10-23 10:02:22 · 167 阅读 · 0 评论 -
JVM(二)—— Java内存区域
Java内存区域与内存溢出异常2.1 运行时数据区Java虚拟机在运行Java程序时会把它所管理的内存分配成不同的数据区,每个数据区都有自己的生存和销毁时间,有的是依赖于线程的创建和销毁,有的是依赖于虚拟机的启动和终止。运行时数据区分为Java堆、虚拟机栈、本地方法栈、方法区、程序计数器。2.1.1 程序计数器程序计数器是一小块内存空间,也称之为当前线程执行字节码的行号指示器。字...原创 2019-10-23 08:39:22 · 105 阅读 · 0 评论