黑马程序员技术交流社区
标题:
有关String的小问题
[打印本页]
作者:
TS__likewise
时间:
2014-6-25 20:05
标题:
有关String的小问题
String s = null的时候,输出的结果是false;而我将String s = "";的时候,返回的又是true;这是怎么回事啊!
请详细解释!
String s = "";
String t = "ab";
s = s + t;
if(s.equals(t))
{
System.out.println("true");
}
else
{
System.out.println("false");
}
作者:
yuZhe_toString
时间:
2014-6-25 20:20
你为什么不输出一下s看看,当s = null时,s = s+t;的结果为nullab;
作者:
千曲生
时间:
2014-6-25 23:37
当String s=“”时,Java程序在堆中给其开辟了内存空间,只不过里面没有存任何数据,而String t=a +b开辟的是方法区,当两者相加时就相当于默认把,方法区的内容赋值进堆内存,所以s的内容和t相同
而当String s=null时,Java程序没有为s开辟内存空间,而他和t相加,相当于一个空指针和一个t指针相加,结果输出的是两个指针,nullab,而t指向的只是ab的地址,所以两者内容不同;
作者:
彭飞
时间:
2014-6-25 23:48
本帖最后由 彭飞 于 2014-6-26 10:27 编辑
不是肿么回事的问题,
是 "" 和null的问题,如果对下面的代码不l理解,请。。。。
public static void main(String[]args){
String s1 = null;
String s2 = "";
System.out.println(s2+"---"+s1);
}
复制代码
作者:
lindegen
时间:
2014-6-26 01:13
彭飞 发表于 2014-6-25 23:48
不是肿么回事的问题,
是 "" 和null的问题,如果对下面的代码不接接,请。。。。
学习了··
作者:
alive
时间:
2014-6-26 08:21
String是软肋啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2