jvm
劲驰
这个作者很懒,什么都没留下…
展开
-
JVM类加载机制-类是如何被加载的?
JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被JVM直接使用的Java类型,这就是JVM的类加载机制类的生命周期JVM规范中初始化的条件被动引用不会触发初始化类加载的过程加载:非数组类:数组类:验证文件格式验证元数据验证字节码验证符号引用验证准备解析初始化 类的生命周期 加载、验证、准备、初始化和卸载5个阶段的顺序是确认的,类加载过程必须按照这种顺序按部就班的开始,在动态绑定中解析可以在初始化后完成 JVM规范中初始化的条件 使用new关键字实例化对象原创 2020-06-21 22:00:41 · 769 阅读 · 0 评论 -
JVM垃圾回收器-如何正确选择垃圾回收器?
JVM垃圾回收器回收的空间包括新生代和老年代,基于标记-清除,复制,标记-整理等算法实现,自动回收JVM堆内存垃圾回收期分类垃圾回收器介绍并发与并行内存分配与回收策略 垃圾回收期分类 连线表示两款垃圾回收器可配合使用,目前JDK8最多的搭配是PS+PO 垃圾回收器介绍 Serial:多个用户线程运行之后达到“安全点”,垃圾回收线程单线程回收新生代,采用复制算法实现,主要用于单CPU环境; ParNew:多个用户线程运行之后达到“安全点”,垃圾回收线程多线程并行回收新生代,采用复制算法实现,主要用于多CP原创 2020-06-20 16:46:52 · 1083 阅读 · 0 评论 -
JVM垃圾回收算法-对象已死吗?
1,判断对象是否已死 引用计数法: 实现:给对象添加一个引用计数器,每当有一个地方引用到它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的 缺点:无法解决循环引用的问题 可达性分析算法 实现:从GC Roots对象为起点,往下搜索,形成一条引用链,当对象与任何引用链没有相连的时候,证明该对象是不可用的 GC Roots对象: 虚拟机栈引用的对象 方法区中类静态属性和常量引用的对象 本地方法栈中JNI引用的对象...原创 2020-06-16 16:31:34 · 316 阅读 · 0 评论 -
JVM相关知识简单总结
JVM内存区域 1,程序计数器:当前线程执行的字节码的行号指示器,线程私有,唯一一个虚拟机规范中没有规定任何OOM的区域 2,虚拟机栈:用于存储局部变量,操作数栈,动态链接,方法出口信息等 3,本地方法栈:执行Native方法服务使用的的内存 4,堆:1个Eden区+2个survivor区+老年代,垃圾回收器管理的主要区域 5,方法区:存储类信息,常量,静态变量,也叫永久代 JVM常见参数 -Xms 初始堆大小 -Xmx 最大堆大小 -Xmn 新生代大小(一般为整个堆的1/3或1/4.原创 2020-06-16 13:33:59 · 367 阅读 · 0 评论