美文网首页
java——对象实例化过程

java——对象实例化过程

作者: 打死你的小乌龟 | 来源:发表于2018-08-29 23:58 被阅读0次

    理解Java中对象实例化过程是很重要的,实例化过程主要步骤如下:

    第1步:在创建类之前,检查类是否加载(是将硬盘上的.class文件加载到内存中),如果没有加 载就加载这个类,在这个类加载之前要加载所有父类。
    Java运行时采用的策略:懒惰式加载(按需加载):如果第一次用到就加载,只加载一次。通过CLASSPATH指定的路径寻找类文件(.class),加载以后是一个对象,类型是Class。

    第2步:在内存堆中分配对象空间。递归分配所有父类和子类属性空间。
    属性默认自动初始化。自动初始化为“0”值。
    第3步:进行属性的赋值。
    第4步:递归调用父类构造器。(默认调用父类无参数构造器!)
    第5步:调用本类构造器。

    Java的内存管理与分配

    1、栈是一块Java使用内存区域,使用的方式:LIFO(后来者居上)。
    2、堆也是一块Java使用内存区域,使用方式:随机分配。
    局部变量与堆对象空间分配
    1、Java局部变量和方法参数在栈中分配,大小是按照变量的类型分配。
    2、对象在堆中分配,按照类中声明属性(实例变量)分配空间。
    变量类型与分配
    1、变量分为:基本类型和引用类型。
    2、基本类型变量的空间大小:就是基本类型的空间大小,值是基本类型的值。
    3、引用变量的值是一个对象的地址值,引用变量通过地址引用了一个堆对象。
    4、引用类型变量的占用空间大小和值管理是“透明的(不可看见)”由Java系统管理:变量占用空间以及值的管理,都是透明的。

    相关文章

      网友评论

          本文标题:java——对象实例化过程

          本文链接:https://www.haomeiwen.com/subject/atuxwftx.html