String str1;
System.out.println(str1); 这样写必须给str初始化为null;
而String str2=new String();
System.out.println(str2); 这样写结果是什么也没有
请教一下为什么???
System.out.println(str1); 这样写必须给str初始化为null;
而String str2=new String();
System.out.println(str2); 这样写结果是什么也没有
请教一下为什么???
String str2=new String(); 你没有传值进去,所以就什么都没有
System.out.println(str1);
这样写会报错的,因为str1未定义,必须进行初始化。
2.String str2=new String();
System.out.println(str2); 这样写结果是什么也没有 你在内存里创建了一个str2,没有赋值,当然结果什么都没有。
第二部:String str2=new String(); 很明显 创建了一个str2的空对象,str2为地址,对象为空,有地址有真相。所以str2是对象,可以被println();
synchronized (this) {
print(x);
newLine();
}
}还是看的不怎么明白
貌似人家的意思不是这个吧?在java中,一个引用被调用,必须初始化的吧?你调用个int i;在方法中肯定也是报错的吧?
这个怎么用你的方式解释呢?????
悲催还这么多人说正解。这是编译、语法的问题吧小弟菜鸟。
而String str=new String()却是new了一个String类型的对象,str指向了这个对象,虽然这个对象没有任何的值,但是确实实实在在存在的。
如果没有设置任何值,那么会默认给对象赋值为一个长度为0的字符数组
第二个是有实例对象的
所以用System.out.println()打印的话,第一个会报异常,第二个不会
String str1只是声明这样一个变量,但并没有给他一个内存空间,所以不能用
只用new才能指定空间,否则你的值没有地方放
其实书的话最好没买,看了也没用,不过你可以去网上找找黑马程序员毕向东的Java基础视频,对你帮助会很大的,平时再不断的练习就可以了,书的话还是别看了