String str;System.out.println(str);与String str = new String();System.out.println(str);区别?
对于String str要明白编译时时在栈中创建,而堆中没有变量值,java编译要求变量都要进行初始化,不然编译会出问题,所以会报错;
而对于String str = new String();创建了对象,系统会自动初始化,就像你没有定义类的构造函数,系统也会自动调用无参构造器,因此输出时没有值。
String str;System.out.println(str);与String str = new String();System.out.println(str);区别?
对于String str要明白编译时时在栈中创建,而堆中没有变量值,java编译要求变量都要进行初始化,不然编译会出问题,所以会报错;
而对于String str = new String();创建了对象,系统会自动初始化,就像你没有定义类的构造函数,系统也会自动调用无参构造器,因此输出时没有值。