String数据类型的初始值

String数据类型的初始值

推断变量 str1 和 str2 的值是什么?

String str1;	// str1 = null
String str2 = new String();		// str2 = ""

现在用程序跑一遍,测试一下结果

public class TestString {
    public static void main(String[] args) {
        String str1;
        String str2 = new String();

        //System.out.println(str1); // 报错:Variable 'str1' might not have been initialized
        System.out.println(str2);
    }
}

说明变量 str1 还未初始化,所以输出不了,而变量 str2 输出为空,可以再一次进行测试,str2 的结果:

System.out.println(str2.length());	// 结果为0

而一般如果变量 str1 需要用到,但不用 new 一个新的对象,可以对变量 str1 赋空值

String str1 = null;

这样就不会报错了,程序也可正常运行。