JVM
文章平均质量分 89
weixin_39780836
这个作者很懒,什么都没留下…
展开
-
JVM虚拟机夯实之路-内存分配与回收策略
1.对象内存回收 堆中几乎放着所有的对象实例,对堆垃圾回收前的第一步就是要判断哪些对象已经死亡(即不能再被任何途径使用的对象)。 1.1引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加1;当引用失效,计数器就减1;任何时候计数器为0的对象就是不可能再被使用的。 优点:引用计数收集器可以很快的执行,交织在程序运行中。对程序需要不被长时间打断的实时环境比较有利。 缺点: 无法检测出循环引用。如父对象有一个对子对象的引用,子对象反过来引用父对象。这样,他们的引用计数永远不可能为0。原创 2021-06-13 07:19:17 · 68 阅读 · 0 评论 -
JVM虚拟机夯实之路-Java 内存区域
Java 内存区域 1. 运行时数据区域 首先来了解下JVM运行时数据区域 1.1 程序计数器 内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成。 1.2 Java虚拟机栈 线程私有,生命周期和线程一致。描述的是 Java 方法执行的内存模型:每个方法在执行时都会床创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方原创 2021-06-13 06:57:25 · 67 阅读 · 0 评论 -
JVM虚拟机夯实之路-垃圾回收器
JVM 垃圾回收器 首先来看一下垃圾收集器的种类 新生代收集器:Serial、ParNew、Parallel Scavenge 老年代收集器:CMS、Serial Old、Parallel Old 整堆收集器: G1 1.Serial收集器(-XX:+UseSerialGC -XX:+UseSerialOldGC) Serial(串行)收集器是最基本、历史最悠久的垃圾收集器了。大家看名字就知道这个收集器是一个单线程收集器了。它的“ 单线程” 的意义不仅仅意味着它只会使用一条垃圾收集线程去完成垃圾收集工作原创 2021-06-12 07:53:48 · 84 阅读 · 0 评论 -
JVM虚拟机夯实之路-JVM类加载机制
JVM类加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 2.类的加载过程 加载 >> 验证 >> 准备 >> 解析 >> 初始化原创 2021-06-12 07:33:31 · 77 阅读 · 0 评论 -
JVM虚拟机学习笔记
JVM虚拟机1.Java 内存区域1.1 运行时数据区域1.1.1 程序计数器1.1.2 Java 虚拟机栈1.1.3 本地方法栈1.1.4 Java 堆1.1.5 方法区1.1.6 运行时常量池1.1.7 直接内存2.JVM 对象揭秘2.1 对象的内存布局2.2 对象的访问定位2.2.1 通过对象的访问定位2.2.2 使用直接指针访问3.垃圾回收器与内存分配策略3.1 判断对象是否可回收3.1.1 引用计数法3.1.2 可达性分析算法3.2垃圾回收算法3.2.1 标记 —— 清除算法3.2.2 复制算法3原创 2021-06-10 05:13:43 · 379 阅读 · 0 评论