200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Java创建对象过程:类的初始化和实例化

Java创建对象过程:类的初始化和实例化

时间:2019-02-16 03:33:57

相关推荐

Java创建对象过程:类的初始化和实例化

文章目录

前言一、类的初始化二、类的实例化

前言

Java对象的创建过程往往包括类初始化和类实例化两个阶段。类的初始化在前、类的实例化在后。

注意:这与spring的bean正好相反,spring的bean的生命周期,主要是先进行实例化java对象,然后在进行操作属性、最后进行初始化,这里初始化并不是java对象的初始化,而是spring的参数的初始化(initMethod、afterPropertiesSet)等。(@PostConstruct是前置拦截初始化方法)

一、类的初始化

是完成程序执行前的准备工作,初始化相关静态代码块和赋值,并分配空间,初始化只在类加载的时候执行一次。

其中类加载具体过程详见:加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载

类的初始化顺序参考如下:

二、类的实例化

实例的构造器调用()、分配内存、属性值得定制化赋值机制

类实例化过程

检测类是否被加载没有加载的先加载→为新生对象分配内存→将分配到的内存空间都初始化为零值→对对象进行必要的设置(对象头)→执行方法把对象进行初始化:

检测类是否被加载为新生对象分配内存确定对象内存大小对象头:大小确定 与类无关 与操作系统有关,包括标记字段和类型指针。实例数据

即使父类的实例字段被子类覆盖或者被private修饰,都照样为其分配内存,相同宽度的字段会分配在一起,其次,父类的字段在子类之前赋值和初始化。对齐填充初始化零值对象的访问定位执行init方法

创建对象的几种方式

使用new关键字Class对象的newInstance()方法构造函数对象的newInstance()方法对象反序列化Object对象的clone()方法使用Unsafe类创建对象

参考引用:

虚拟机研究系列-你真正掌握了Java对象创建的流程吗?

java类的初始化和实例化区别

java创建对象的过程详解(从内存角度分析)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。