十年架构师为你详解24道Jvm面试题,轻松备战金三银四跳槽季(12)

  • 加载 , 查找并加载类的二进制数据 , 在Java堆中也创建一个java.lang.Class类的对象

  • 连接 , 连接又包含三块内容:验证、准备、初始化 。 1)验证 , 文件格式、元数据、字节码、符号引用验证; 2)准备 , 为类的静态变量分配内存 , 并将其初始化为默认值; 3)解析 , 把类中的符号引用转换为直接引用

  • 初始化 , 为类的静态变量赋予正确的初始值

  • 使用 , new出对象程序中使用

  • 卸载 , 执行垃圾回收

  • 11.Java对象结构

    Java对象由三个部分组成:对象头、实例数据、对齐填充 。

    对象头由两部分组成 , 第一部分存储对象自身的运行时数据:哈希码、GC分代年龄、锁标识状态、线程持有的锁、偏向线程ID(一般占32/64 bit) 。 第二部分是指针类型 , 指向对象的类元数据类型(即对象代表哪个类) 。 如果是数组对象 , 则对象头中还有一部分用来记录数组长度 。

    推荐阅读