1.String test;
2.String test=null;
3.String test=“null”;
使用String test;在方法内部声明变量时,变量不会被初始化。在类内部声明成员变量,变量会自动被初始化为null。
使用String test;只是声明变量,声明内部成员变量时,当我们没有手动初始化时,编译器会帮我们自动初始化成员变量,所以能够编译通过。
使用String test;在方法内部声明内部成员变量时,编译器并不会帮我们自动初始化变量,如果在方法内部没有显示的初始化,编译不同通过。
要弄清楚变量声明和变量初始化的区别,String test;只是声明变量,在类内部声明成员变量没有去显示的初始化,但是变量并不是没有被初始化,而是编译器帮我们进行了初始化。所以变量声明和变量初始化是两个不同的概念,需要两步去完成。
String test=null;是显示的将引用变量初始化为null,test引用没有指向任何String对象,不能通过test引用去操纵String对象。
String test=“null”;是声明的“null”字符串。