从class到对象

2019-01-22  本文已影响0人  FightForFuture
一、JVM运行时数据区
运行时数据区.png
-Xmx:最大可用堆空间      -Xms:初始分配空间
-Xmn:年轻代空间          -Xss:每个线程堆栈大小

注:String.intern()
native方法,如果字符串常量池中已包含,就返回其引用,否则加入到常量池中,再返回引用。

二、对象的创建

JVM遇到new指令:

  1. 首先检查能否在常量池中定位到类的符号引用,并检查符号引用代表的类是否已被加载,解析和初始化。
  2. 然后为对象分配内存
  3. 分配内存之后JVM会将内存空间都初始化为零值(不包括对象头)。
  4. JVM对对象进行必要设置
    对象是哪个类的实例、类型指针(指向元数据)、对象的Hash码、对象的GC分代年龄、锁状态标志、线程持有的锁、偏向线程id、偏向时间戳等,这些信息存放在对象头
  5. 执行<init>方法


    图片1.png
上一篇 下一篇

猜你喜欢

热点阅读