类的加载过程:

将类的.class文件中的二进制数据读入到内存中->将其放在运行时数据区的方法区内->在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构.

对象的创建过程:

首先 JVM遇到一条创建对象的指令后:首先检查这个指令的参数能否在常量池中找到,然后加载这个类。第二步为对象分配内存(一种办法“指针碰撞”、一种办法“空闲列表”,最终常用的办法“本地线程缓冲分配(TLAB)”)第三步:将除对象头外的对象内存空间初始化为0 第四步:将对象的头进行必要的设置。