java中“未初始化的String引用”怎么理解(TK in java的习题)

图片描述

我是这样理解的,大家看看对不对,输出结果是空(不是字符‘null’)

class rock{
    rock(){
        System.out.println(new String());}
}
public class constructor {
public static void main(String args[]){
    new rock();
}
}
阅读 4.4k
2 个回答

就是成员变量没有显示赋值,编译器会将成员变量设置为默认值

public class NoneInitTest {
    private String str;
    
    public static void main(String[] args) {
        System.out.println(new NoneInitTest().str);
    }
}

如果成员变量类型是对象,未显式初始化的话,就会被设为null,但是如果是方法中定义的局部变量的话,不会设置默认值,而是会报错

public class Foo {
    private static String str;
    
    public static void main(String[] args){
        System.out.println(str);
    }
}

就是类中的一个域如果没有被初始化,Java会把它初始化为该类型的零值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题