• java 对象的创建


    jvm在创建对象时,首先判断该对象所对应的类是否已经被加载、链接和初始化,如果没有则先执行类的加载过程。类的加载过程见 java类加载

    类加载检查通过后,虚拟机在堆中为新生对象分配内存。

    内存分配完成后,虚拟机将分配到的内存空间(不包括对象头)都初始化为零值,这一步操作保证了对象的实例字段在java代码中可以不赋值就使用。

    对象的内存布局

    对象在内存中的存储布局可以分为三块区域:对象头、实例数据和对齐填充。

    对象头包含两部分信息。第一部分用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志等。第二部分是类型指针,通过该指针可以确定该对象是哪个类的实例。

    实例数据是对象真正存储的有效信息,包括从父类中继承与该类定义的变量。在父类中定义的变量会出现在前面。

    对象的初始化

    虚拟机为对象分配好内存并初始化为零值(这一步是程序无法控制的),紧接着会执行对象的初始化,这个初始化有程序的初始化块与构造器完成。

    关于初始化执行的顺序见 java初始化块执行顺序

  • 相关阅读:
    08测试环境配置_数据库配置
    11等价类
    15状态迁移
    12边界值分析法
    10用例格式
    python的转义字符和原字符
    13数据分析法
    14正交试验
    python软件安装
    cookie的secure属性
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/9524965.html
Copyright © 2020-2023  润新知