JVM-你真的了解对象吗?

摘要

本节主要讲解java中对象是如何创建?如何布局?如何访问?

内容

Java是一门面向对象的程序语言,Java程序运行过程中无时无刻都有对象被创建,语言层面上,常见对象,创建一个对象是一个new关键字而已,在虚拟机中,对象又是怎样创建的呢?

1、对象创建

举例来说;我们通过以下代码创建一个对象A;

public class A {
    private int a;
    public static void main(String[] args) {
        A a = new A();
    }
}

他对应的底层jvm虚拟机中又是一个怎样的过程呢?
对象的创建主要包括六个步骤:
JVM-你真的了解对象吗?_第1张图片
类的初始化对于引用变量初始化为null,对于基本类型变量就具体赋值;init方法执行:主要包括静态方法、静态代码块等。

  1. 对象检查:虚拟机遇到new指令时,首先去检查这个指令参数是否在常量池中定位到一个类的符号引用;并检查这个符号引用代表的类是否已经被加载、解析、初始化。
  2. 类加载:虚拟机进行符号引用的类加载、解析、初始化。
  3. 分配内存:类检查通过后,虚拟机为新对象分配内存;对象分配的内存在虚拟机类加载完成之后就是可以确定的;为对象分配空间的任务等同于把一块确定大小的内存从java堆中部划分出来。
  4. 初始化:

你可能感兴趣的:(jvm)