看这篇文章的前提,你已经知道什么是java中的对象。知道jvm的内存模型。
1.对象什么时候被创建?
对象是由线程执行代码而被创建的(自己的理解)。我们知道当线程执行代码,执行到new关键字时,创建对象时,描述对象信息的class文件的字节码信息被jvm加载到堆内存中。封装成一个叫Class对象中。这个时候对象就创建了。
2.对象是怎么被创建的?
java对象。java语言跨平台是由于jvm将.java文件编译程class文件,class文件可以在jvm上运行。因而实现了java语言的跨平台。描述一个对象的关键就是class文件。里面包含了对象的全部信息,如属性,方法,静态变量,内部类等。
java对象的创建过程。java对象的创建过程起始就是将java文件的编译文件.class文件加载到内存翻译程0101的过程。
简单说下我理解的几步,步骤很复杂,我说的是大致的步骤,细节我还需深入学习。
第一步,验证。验证class文件中字节码,指令是否正确。
第二步,找到可以加载此class文件的类加载器。(双亲委派)
第三步,通过类加载器加载class文件。
第四步,初始化。给对象再堆中分配空间,赋初始默认值。
第五步,实例化。给对象赋实际值。
至此,一个对象就被创建ok。