
JVM系列
文章平均质量分 79
BNMZY
chatgpt搬运工
展开
-
深入理解JAVA虚拟机三 -垃圾收集器与内存分配策略
3.2对象已死?(P68)3.2.1引用计数算法在对象中天街一个引用计数器,每当有一个地方引用它时,计数器值+1,当引用失效时,计数器值-1,为0的对象就是不可能再被使用的3.2.2 可达性分析算法通过一系列称为"GC ROOT"的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,走过的路径叫做"引用链(Reference Chain)",如果某个对象到GC Roots间没有任何引用链相连,(不可到达),证明此对象不可再被使用GC Roots的对象在虚拟机栈(栈中的本地变量表)中引用原创 2020-07-05 13:01:47 · 2874 阅读 · 0 评论 -
类加载过程
字节码Demopublic static void main(String[] args) { Demo demo = new Demo();}字节码Build->Recompile Demo.java打开Terminal控制台:javap -v -p Demo.class字节码内容 0: new #2 1...原创 2020-04-10 16:56:02 · 176 阅读 · 0 评论 -
JMM
简介定义JMM(JAVA内存模型)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式运行过程JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(栈空间),工作内存是每个现成的私有数据区域Java内存模型中规定所有变量都存储在主内存,主内存是共享内存区域,所有线程都...原创 2020-03-31 18:12:03 · 259 阅读 · 0 评论 -
JVM-栈、堆、GC
栈重要理论栈管运行,堆管存储程序 = 算法 + 数据结构队列(FIFO)先进先出栈(FILO)先进后出java方法在栈内就是栈帧(就是栈的一个格子)基本介绍栈也叫栈内存,主管Java程序的运行,是在线程创建时创建,生命周期是跟随现成的生命期,线程结束占内存也就释放,对于栈来说不存在垃圾回收问题,是线程私有的。8中基本类型的变量+对象的引用变量(对象名)+实例方法都是在函数的......原创 2020-03-31 16:39:21 · 317 阅读 · 0 评论 -
JVM-体系结构概述
JVM体系结构概览类装载器ClassLoader简介负责加载class文件,class文件在文件开头有特定的文件标识(cafe babe)将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构ClassLoader只负责加载class文件,至于是否可以运行由Execution Engine决定装载器类型虚拟机自带的加载器启动类加载器(Boot...原创 2020-03-31 16:37:54 · 187 阅读 · 0 评论