![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 84
恶语伤人六月寒
热爱java的同志
展开
-
JVM对象创建与内存分配机制
对象的创建 1.类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个 符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 new指令对应到语言层面上讲是,new关键词、对象克隆、对象序列化等。 2.分配内存 在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类 加载完成后便可完全确定,为 对象分配空间的任务等同于把 一块确定大小的内存从Java堆中划分出来。 这个步骤有两个问题:原创 2021-05-25 23:17:52 · 152 阅读 · 1 评论 -
JVM内存模型深度刨析
JVM体系结构 java语言的挂平台特性 JVM的整体结构及内存模型 概述: 类加载子系统将编译好的.class文件加载进jvm 1.堆 线程共享, 存放的是对象 2.栈 线程私有,存放的是局部变量,也可已存放对象,我喜欢叫它线程栈,因为开启一个main线程就会在栈中划出一小块内存空间,内存空间就是栈空间,栈中存放一个个栈帧(一个方法对应一个栈帧),栈帧中存放 :局部变量表(存放的是局部变量例如 int a=0;存放的就是a),操作数栈(例如int a=0,存放的是0,不过0会被压入局部变量表赋值给局原创 2021-05-19 21:40:38 · 165 阅读 · 0 评论 -
类加载
**类加载机制** Java类如何进行加载 其中loadClass的类加载过程有如下几步: 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载 加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的 main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的 java.lang.Class对象,作为方法区这个类的各种数据的访问入口 验证:校验字节码文件的正确性 准备:原创 2021-05-18 15:33:05 · 152 阅读 · 1 评论