java初始化

Posted 掉尾瓶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java初始化相关的知识,希望对你有一定的参考价值。

一、成员初始化

1.成员变量没有赋值,则被初始化成默认值。

2.局部变量没有赋值,编译时报错。

 

二、构造器初始化

1.成员变量在构造器初始化之前,已经被初始化。

2.变量定义的顺序决定了初始化的顺序。

 

三、静态数据初始化

1.static不能用于局部变量

2.初始化顺序:先静态对象(之前没有被初始化,因为静态对象只在类被加载的时候初始化一次),然后是"非静态"对象.

 

java对象初始化顺序:

总结:如果有个Dog类

1.即使没有显式使用static关键字,构造器实际上也是静态方法,因此当第一次创建Dog对象时,或者Dog类的静态变量或方法首次使用时,类加载器就会加载Dog.class.

2.加载完成后,静态初始化动作都会执行,静态的初始化只在加载类的时候执行一次‘

3.当用new创建对象时,首先在堆上分配足够的空间

4.这块存储空间会被清空,自动将Dog对象的所有基本类型都设置成默认值,引用类型被设置null

5.执行成员变量的初始化动作

6.执行构造器

 

以上是关于java初始化的主要内容,如果未能解决你的问题,请参考以下文章

Java变量Java对象初始化顺序

java中类与对象的加载顺序

Java初始化顺序

java对象初始化的顺序

JAVA初始化的执行顺序

Java对象初始化顺序