jvm
文章平均质量分 68
↣我爱学习喔
虽然有点晚,但也要成为很厉害的人
展开
-
可达性分析算法(GC ROOT)的过程
可达性分析算法: (当前主流语言的内存管理子系统都是通过可达性分析算法来判断对象是否存活,Java语言同样,没有使用引用计数法算法的) 基本思路:GC roots的对象作为起始节点集合,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为 引用链,如果某个对象到GC roots没有任何引用链相连,那么这个对象就被认为是可以回收的对象。 GC Roots: 虚拟机栈中引用的对象(各个线程被调用的方法堆栈中使用到的参数,局部变量,临时变量等) 方法区中静态对象,常量对象,字符串常量池中的对.原创 2020-11-12 14:24:30 · 1181 阅读 · 0 评论 -
JVM创建对象的过程
本文讨论的是Java对象在jvm中创建的过程(不包括数组、Class对象的创建) 类的加载、连接、初始化 在语言层面上,我们创建对象需要new关键词来创建对象,当JVM遇到这个指令时,首先检查这个指令能否在常量池中定位到这个类的符号引用,并且要检查这个符号引用代表的类是否已经被加载、连接(验证、准备、解析)、初始化过,如果没有那么就去执行类加载过程,详见:类加载机制,这里不再赘述。 新生对象分配内存的方式 2.1 对象内存布局 要分配新生对象内存,那么先得知道它所需内存大小,在HotSpot虚拟机中,对象原创 2020-11-07 14:01:35 · 226 阅读 · 0 评论 -
面试必备jvm类加载器
什么是类的加载 我们平时所编写的“xx.java”文件需要经过我们所知的java编译器(javac)编译成“xx.class”文件,这个文件存放着编译后jvm指令的的二进制信息。而**当我们需要用到某个类时,jvm将会加载它,并在内存中创建对应的class对象,这个过程称之为类的加载。**过程如下: 类的加载、连接、初始化 1. 加载 通过类的包名和雷鸣查找到此类的字节码文件,将xx.class...原创 2020-02-29 15:32:07 · 570 阅读 · 2 评论