如果类的成员变量里有引用类型,而且声明这个引用类型的时候并没有使用new,这个引用类型啥时候初始化

谢邀在java中,类的加载大致分为三个阶段:加载、连接、初始化1. 加载阶段主要是用来查找并加载类的二进制2. 连接阶段会去验证class文件,为静态引用分配内存(但并未赋予默认值),并且去把类中的符号引用转化为直接引用.3. 初始化阶段,其是为类的静态变量赋予正确是初始值;回到题目:如果该引用类型是静态的,那么其会在初始化阶段给其初始化而若该引用是非static的,该成员属性只有当被“主动使用”才会被初始化ps:主动使用的例子比如new一个该类的实例对象或者其子类这样
■网友
泻药 ,类的成员变量几种初始化的方式:1、声明引用变量,默认初始化值为null 。例如 String name ;2、声明引用变量,显示的初始化赋值。 例如 String name=“abc” ;3、声明引用变量,利用代码块赋值。 例如 String name; { name = "abc";}注:以上三种赋值方式优先级相同, 根据代码的先后顺序执行。\u0026lt;构造器创建对象之前\u0026gt;4、在构造器中赋值。\u0026lt;此处是构造器创建对象时\u0026gt;5、JavaBean 中 通过set方法赋值。\u0026lt;此处是构造器创建对象之后\u0026gt;如果是static修饰的变量 声明周期更长,在类加载时就会初始化了,而不需要new 对象 。 static 修饰之后 成员变量 变为 类变量,不管类 new多少对象,静态变量共用一个。
■网友
【如果类的成员变量里有引用类型,而且声明这个引用类型的时候并没有使用new,这个引用类型啥时候初始化】 如果是类的成员变量有引用类型,在类初始化时会给其默认的值,比如说:String 给 null,int给0,其他自己定义的对象什么的一般也赋值为null。


    推荐阅读