JVM
拔剑抉云
这个作者很懒,什么都没留下…
展开
-
JVM学习笔记系列--垃圾回收算法
对象存活判断算法 垃圾收集器在进行对象回收之前,必须判断哪些对象是可回收的,这就引出了对象存活判定算法。 引用计数法 主流的虚拟机都没有选用引用计数器算法来管理内存,最主要的原因就是它很难解决对象之间相互循环引用的问题。 可达性分析算法 算法的基本思路是通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。 可...原创 2020-09-08 11:13:27 · 208 阅读 · 0 评论 -
JVM学习笔记系列--java内存区域划分
Java运行时数据区域分为程序计数器、虚拟机栈、本地方法栈、堆、方法区(运行时常量池在方法区内) 1.程序计数器 线程私有,是唯一一个在java虚拟机中没有规定OutOfMemoryError(OOM)情况的区域 2.虚拟机栈 线程私有,生命周期与线程相同,为虚拟机执行java方法(也就是字节码)服务。如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常;虚拟机可以动态扩展,但如果扩展时无法申请到足够的内存,将抛出OOM异常 3.本地方法栈 线程私有,为虚拟原创 2020-09-06 17:15:18 · 201 阅读 · 0 评论 -
Java的内存分配与垃圾回收
jvm内存结构分为五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。 各个区域特点如下 堆区: (1).存储的全部是对象,每个对象都包含一个与之对应的class的信息(class的目的是得到操作指令)。 (2).jvm只有一个堆区(heap),且被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身和数组本身。 (3).通常可分为两个区块新生代和老年代。更新一点新生代可分为Ed...原创 2019-12-14 10:23:50 · 91 阅读 · 0 评论 -
Java类加载过程和JVM加载Class文件的原理
加载过程 类加载过程即是指JVM虚拟机把.class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。JVM不是一开始就把所有的类都加载进内存中,而是只有第一次遇到某个需要运行的类时才会加载,且只加载一次。 类加载的过程主要分为三个部分:加载、链接和初始化。 而链接又可以细分为三个小部分:验证、准备和解析。 加载指的是把class字节码文件从各个来源通过类加载...原创 2019-12-11 15:52:07 · 743 阅读 · 0 评论