Java对象创建过程

2023-10-30

1.    用户new一个对象。

2.    JVM检查常量池,看是否可定位到一个类(所对应的符号引用),并检查该类是否已经加载,解析和初始化。若没有,则执行类加载过程。

3.    类加载检查通过,JVM为新对象分配内存。由于类已经加载完成,所以内存大小是可以确定的。分配过程就是从Java堆中划分一块内存出来。JVM维护了一个空闲内存列表,记录了所有可用的内存块。分配时划分一块足够大的内存出来。这称为“空闲列表”。

实际上,每个线程在Java堆上都是会预先分配一小块内存的,称为本地线程分配缓冲(TLAB)。当该线程需要分配内存时,优先使用TLAB。只有当TLAB用完并分配新的TLAB时,才需要同步锁定。

4.    内存分配完成后,JVM将分配的内存空间进行初始化为零值(不包括对象头)。若使用TLAB,这一步会提前到TLAB分配时进行。故对象实例的字段可以不赋初值就可直接使用。

5.    JVM对对象进行必要设置,并将各种设置信息放在对象头之中。完成之后,一个新对象产生了。

6.    执行对象的int方法。一个真正可用的对象产生。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java对象创建过程 的相关文章

随机推荐

  • 人脸表情数据集及其处理

    JAFFE数据集 1998年发布 这是比较小和老的数据库 该数据库是由10位日本女性在实验环境下根据指示做出各种表情 再由照相机拍摄获取的人脸表情图像 整个数据库一共有213张图像 10个人 全部都是女性 每个人做出7种表情 这7种表情分别
  • angular2使用Http服务

    当你需要使用Http的时候 需要在你的模块中导入HttpModal 否则会出现Http没有工厂错误 import NgModule from angular core import HttpModule from angular http
  • Android NDK开发——Android studio使用JNI调用OpenCV处理图像

    前言 这里要演示的是使用Android studio 做APP开发 使用JNI与C 交互的demo 一 创建工程 1 创建一个Native C 工程 2 命令工程和指定交互语言 3 指定C 语法版本 4 创建完成之后打开cpp目录下的CMa
  • 心电图心跳信号多分类预测(一)

    目录 1 赛题理解 1 1赛题概况 1 2数据概况 1 3代码示例 1 3 1数据读取 1 3 2分类指标计算示例 2 baseline 2 1 导入第三方包 2 2 读取数据 2 3 数据预处理 2 4 训练数据 测试数据准备 2 5 模
  • gitLab配置ssh实现私钥访问

    1 配置ssh文件 1 cd C Users 用户名 ssh 找到文件夹 删除 ssh 里面所有其他文件方面我们配置要最新的 2 win r cmd 呼出命令行 ssh keygen t rsa C 必须对应gitLab用户名 3 生成文件
  • 如何理解委托

    以前一直没弄懂委托到底有什么用 为什么要用 今天小小总结了一下 如下 总结 delegate 1 委托的定义 1 就是一个类 他定义了方法的类型 2 public delegate void 自定义类型 类型 变量 当然还有匿名委托dele
  • 再谈select, iocp, epoll,kqueue及各种I/O复用机制

    上篇文章太过幼稚 一派胡言 希望没有误导大家 我也是菜鸟 学习本身就是一个不断追求真理的过程 希望能谅解 首先感谢kasicass GG指出错误 已经指导我很多次了 非常感谢 然后我又查阅了一些资料 再次整理 more seriously
  • 老油条表示真干不过,部门新来的00后网络安全工程师已把我卷崩溃,想要润了...

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 解决java中html转word文档,转成功后的word文档在断网情况下无法显示图片问题

    前一段时间遇到一个问题 就是将html转成word文档 里面有图片 表格 和各种形式的文字 刚开始的做法是将html代码取出来 然后以留的形式进行保存 后缀名为 doc 当我转成之后发现一切完美 但是图片出现了问题 1 图片大小 像素有问题
  • 用elasticsearch-certutil生成证书

    1 生成CA证书 生成的elastic stack ca zip包含了证书和私钥 证书有效期是10年 elasticsearch certutil ca days 3650 keysize 4096 out cert elastic sta
  • 【Python爬虫】requests+BeautifulSoup4+MongoDB 爬取51job招聘信息(最新)

    新手训练 51job 网站完整的Python爬虫程序 文章目录 前言 一 网站解析 1 分析网站加载形式 2 分析网站的url 二 代码实现 1 引入库 2 解析城市编码 3 获取数据 3 1 解析数据 3 2 数据的清洗和存储 4 完整代
  • react更新props后this.props === nextProps

    1 this props always equals to nextProps 结构 父组件 ComparisonChart 子组件 UniversalChart 问题 父组件中state gt data传到子组件作为props gt da
  • 点击跳转到高德地图,百度地图,腾讯地图进行导航

    现在随着APP定制化的需求 很多APP都需要导航功能 然而自己APP集成一个导航 除了会增加APP大几十兆之外 还没有专业导航软件功能强大 然而现在大部分手机自带导航软件 所以只需要打开调用即可 包括腾讯的微信 都没有直接导航 而是调用了手
  • Ubuntu18.04及以上开机自启动脚本设置方法

    一 问题 ubuntu 18 04及以上系统取消了rc local自启动功能 因此不能像ubuntu16一样通过编辑rc local来设置开机启动脚本 通过下列简单设置后 可以使rc local重新发挥作用 二 方法 1 建立rc loca
  • Django连接MySql

    首先我们需要在Pycharm新建一个Django的项目 新建后的文件目录如下 a init py 标识当前所在目录时一个Python包 通过import导入的包或者方法会被自动识别 b asgi py 一个ASGI兼容的Web服务器的入口
  • Python中os.listdir和os.walk(获取路径方法)的区别

    在Python中 os listdir 和 os walk 是两种不同的方法来获取文件系统中的路径列表 os listdir 这个函数用来获取指定目录下的所有文件和文件夹的名称列表 它接受一个路径参数 返回该路径下的所有项目的名称 包括文件
  • Vue的条件判断

    1 Vue的条件判断 1 vue的条件判断 v if v else if v else 这三个指令与JS的条件语句if else else if类似 Vue的条件指令可以根据表达式的值在DOM中渲染或销毁元素或组件 2 指令v if 可以用
  • 计算机专业毕业设计题目大全 (各类型系统设计大全)

    计算机专业毕业设计题目大全 毕设 论文 答辩通关法则 看这一篇 源码都在下面了 写在前面 尽管论文方法和毕设源码都有 但还是要看课 自己敲完完善好 做好充分准备面对答辩 1 网络留言薄 2 客户管理系统 3 多媒体积件管理库的开发与应用 4
  • QMap的使用(插入、取值、删除、遍历)

    1 创建 里面的数据类型随意都行 QMap
  • Java对象创建过程

    1 用户new一个对象 2 JVM检查常量池 看是否可定位到一个类 所对应的符号引用 并检查该类是否已经加载 解析和初始化 若没有 则执行类加载过程 3 类加载检查通过 JVM为新对象分配内存 由于类已经加载完成 所以内存大小是可以确定的