JVM
文章平均质量分 93
菜鸟日常
公众号:菜鸟日常
展开
-
JVM 学习之类加载机制
类加载机制 加载:从各个地方加载 class 文件(本地、网络、zip、数据库等)到内存中,在内存中就变为方法区的运行时数据结构,在 Java 堆中生成一个代表这个类的 java.lang.Class 对象,作为对方法区中这些数据的访问入口。 验证:是否满足当前虚拟机要求 文件格式验证,验证字节流是否符合 Class 文件格式的规范,并且能被当前版本的虚拟机处理,该验证的主要目的是保证输入的字节流能正确地解析并存储于方法区之内。经过该阶段的验证后,字节流才会进入内存的方法区中进行存储,后面的三原创 2021-06-07 20:58:25 · 129 阅读 · 1 评论 -
JVM 学习之运行时数据区
介绍 Java虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,已经创建和销毁时间,有的区域随着虚拟机进程的启动而创建,有些区域则依赖用户线程的启动和结束而创建和销毁。 Java 文件中定义的方法、变量、常量等进入内存后,存放的区域以及对应的变化。 Java 虚拟机内存空间就是一块普通的内存空间,只是这部分处理 Java 程序。 Java 虚拟机内存结构按线程数据是否共享分为两部分: 线程共享 堆 方法区 常量池 线程私有 PC 寄存原创 2021-06-07 20:55:20 · 64 阅读 · 0 评论 -
JVM 学习之垃圾回收
确定垃圾 引用计数:给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加 1;当引用失效,计数器就减 1;任何时候计数器为 0 的对象就是不可能再被使用的。存在对象之间相互循环引用的问题。 根搜索:如果在 GC roots 和一个对象之间没有可达路径,则称该对象是不可达的。要注意的是,不可达对象不等价于可回收对象,不可达对象变为可回收对象至少要经过两次标记过程。两次标记后仍然是可回收对象,则将面临回收。 GC Roots 虚拟机栈(栈帧中的本地变量表)中引用的对象;栈帧弹出,所引用的对原创 2021-06-07 20:46:11 · 76 阅读 · 1 评论 -
Java 虚拟机基础知识
类加载机制 类加载阶段 加载:查找字节流,创建类。 双亲委派模型:boot class loader,extension class loader,application class loader 链接: 验证: 准备:静态字段分配内存 解析 :符号引用解析 初始化:静态字段初始化 内存布局 堆 方法区 Java虚拟机栈 本地方法栈 PC 寄存器 垃圾回收 确定垃圾 回收 工具 ...原创 2020-09-04 23:46:48 · 205 阅读 · 0 评论