目录
1 前言
2 Java对象创建
2.1 类加载检查
2.1.1 谁来加载
2.1.2 如何加载
2.2 分配内存
2.3 初始化零值
2.4 设置对象头
2.5 执行clinit
3 对象回收
4 补充Tomcat打破双亲委派机制
在讲java创建之前,我们先来了解下Java虚拟机内存组成,当Java虚拟机启动后,会将系统分配给JVM的空间逻辑上划分为堆、虚拟机栈、本地方法栈、方法区、程序计数器五个部分,如下图所示:
堆:放置new出来的对象、数组
虚拟机栈:线程运行前,会给其分配一个线程栈空间,线程中每个方法执行都会生成一个栈帧放入线程栈中,栈帧里面包含局部变量表、操作数栈、动态连接和方法出口四部分。
局部变量表:存储方法中的局部变量
操作数栈:用于赋值或者计算的数据
动态链接:方法执行的入口地址
方法出口:返回调用方法的地址文章来源:https://www.toymoban.com/news/detail-623917.html
本地方法栈:与虚拟机栈类似,是调用非j文章来源地址https://www.toymoban.com/news/detail-623917.html
到了这里,关于Java对象创建回收全过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!