专栏首页cwl_JavaJVM性能调优-Java程序员不可不知的对象创建底层步骤细节

JVM性能调优-Java程序员不可不知的对象创建底层步骤细节

简介:Java程序员不可不知的对象创建底层步骤细节
对象创建的流程步骤包括哪些
  • 虚拟机遇到⼀条new指令时,⾸先检查这个对应的类能否在常量池中定位到⼀个类的符号引⽤
  • 判断这个类是否已被加载、解析和初始化
  • 为这个新⽣对象在Java堆中分配内存空间,其中Java堆分配内存空间的⽅式主要有以下两种
    • 指针碰撞
      • 分配内存空间包括开辟⼀块内存和移动指针两个步骤
      • ⾮原⼦步骤可能出现并发问题,Java虚拟机采⽤CAS配上失败重试的⽅式保证更新操作的原⼦性
    • 空闲列表
      • 分配内存空间包括开辟⼀块内存和修改空闲列表两个步骤
      • ⾮原⼦步骤可能出现并发问题,Java虚拟机采⽤CAS配上失败重试的⽅式保证更新操作的原⼦性
  • 将分配到的内存空间都初始化为零值
  • 设置对象头相关数据
    • GC分代年龄
    • 对象的哈希码 hashCode
    • 元数据信息
  • 执⾏对象⽅法

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 经典面试题-列举JSP的内置对象,同一应用中页面有哪些方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • Java基础-面向对象(一)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • 速读原著-HotSpot虚拟机对象探秘

    Java 是一门面向对象的编程语言,Java 程序运行过程中每时每刻都有对象被创建出来。在语言 层面上,创建对象通常(例外:克隆、反序列化)仅仅是一个 new...

    cwl_java
  • java学习与应用(4.2)--JavaScript、bootstrap

    JavaScript,弱类型脚本语言,增强交互和用户体验提高效率等。JavaScript=ECMAScript+JavaScript特有的内容(BOM对象+DO...

    嘘、小点声
  • VBA对象篇概述

    大家好,后面开始将介绍VBA对象模型部分内容,会引入许多新的概念,尽量循序渐进的介绍相关内容,力求深入浅出。

    无言之月
  • VBA对象模型和对象引用

    EXCEL中的各种对象并不是孤立存在的,彼此之间都是有联系和层级关系,对象模型的概念就是用来描述对象之间关系的,构建了一个完整的体系。

    无言之月
  • Django 2.1.7 查询集 QuerySet

    上一篇Django 2.1.7 模型 - 条件查询 F对象 Q对象 聚合查询讲述了关于Django模型的介绍F对象、Q对象、聚合查询等功能。

    Devops海洋的渔夫
  • 机器学习中 K近邻法(knn)与k-means的区别

    K近邻法(knn)是一种基本的分类与回归方法。k-means是一种简单而有效的聚类方法。虽然两者用途不同、解决的问题不同,但是在算法上有很多相似性,于是将二者放...

    Niucas_Mao
  • 用Java实现一个通用并发对象池

    这篇文章里我们主要讨论下如何在Java里实现一个对象池。最近几年,Java虚拟机的性能在各方面都得到了极大的提升,因此对大多数对象而言,已经没有必要通过对象池来...

    哲洛不闹
  • 集合在开发中实践中的应用

    (1)根据用户需求处理各种数据,作为开发者应该将各种数据分类成各种对象,在程序中处理对象

    wfaceboss

扫码关注云+社区

领取腾讯云代金券