首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java的system.out.println的有关问题

2012-09-20 
java的system.out.println的问题String str1 new String(liunim)String str2 str1System.out.prin

java的system.out.println的问题
String str1 = new String("liunim");
String str2 = str1;
System.out.println("str1 == str2:"+ str1==str2);

的结果为什么是false???

[解决办法]
是运算符的顺序导致的吧,先将前两个对象相加在和str2比较。。

[解决办法]
String str1 = new String("liunim");
String str2 = str1;
System.out.println("str1 == str2: "+ (str1 == str2));

这样就true了,不加括号的话,因为前面引号里面的也是String,所以会跟str1加起来再跟str2比较哦~
[解决办法]
同意楼上两位的说法。

看来楼主刚学java的娃。

建议没事翻翻源码多看看里面的比较方法

还有==


[解决办法]
优先级问题,ls都已经说了
System.out.println("str1 == str2:"+ str1==str2);
等价于
System.out.println(("str1 == str2:"+ str1)==str2);
[解决办法]

探讨
String str1 = new String("liunim");
String str2 = str1;
System.out.println("str1 == str2: "+ (str1 == str2));

这样就true了,不加括号的话,因为前面引号里面的也是String,所以会跟str1加起来再跟str2比较哦~

[解决办法]
字符串间的比较肯定是使用equals()来比较的。
用“==”来判断字符串变量是否相等时,它是通过判断两个变量的标识(也就是id号)来决定的,即如果a和b同时指向的是内存中的同一个对象,那么他们的id号是相同的,内容当然也是相同的,而我们这里要判断的是两个不同对象中的字符串内容是否相等,很明显,是不同的对象,那么,用“==”来判断的话,结果肯定都是false了
[解决办法]
探讨

字符串间的比较肯定是使用equals()来比较的。
用“==”来判断字符串变量是否相等时,它是通过判断两个变量的标识(也就是id号)来决定的,即如果a和b同时指向的是内存中的同一个对象,那么他们的id号是相同的,内容当然也是相同的,而我们这里要判断的是两个不同对象中的字符串内容是否相等,很明显,是不同的对象,那么,用“==”来判断的话,结果肯定都是false了

[解决办法]
优先级的问题,亲
[解决办法]
肯定是运算符优先级的问题提。
运算符的优先级还是要弄清楚的
[解决办法]
[Quote=引用:]

引用:

字符串间的比较肯定是使用equals()来比较的。
用“==”来判断字符串变量是否相等时,它是通过判断两个变量的标识(也就是id号)来决定的,即如果a和b同时指向的是内存中的同一个对象,那么他们的id号是相同的,内容当然也是相同的,而我们这里要判断的是两个不同对象中的字符串内容是否相等,很明显,是不同的对象,那么,用“==”来判断的话,结果肯定都是false了
……
[/Quote]
++++++
[解决办法]
+1
探讨
String str1 = new String("liunim");
String str2 = str1;
System.out.println("str1 == str2: "+ (str1 == str2));

这样就true了,不加括号的话,因为前面引号里面的也是String,所以会跟str1加起来再跟str2比较哦~

热点排行