论坛首页 招聘求职论坛

一道邪恶的java基础题

浏览 45502 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (5)
作者 正文
   发表时间:2010-10-02  
flyinbed 写道
java中判断两个字符串的值是否相同应该用equals,这样“==” 是判断两个字符串的地址是否相等

按常理应该是,不过String的鸟类比较特殊,按照Java的内存处理机制,相同的字符串Java不会再分配新的内存而是就那原来的那个。
这有一篇文章,很有用。http://www.iteye.com/topic/522167
0 请登录后投票
   发表时间:2010-10-03  
这题有意思,逻辑强一点就能分析出来,
1.先运行 ==
结果 "===>true"
2.先运行 +
结果 "false"
如果答案只有两个
我肯定选2
0 请登录后投票
   发表时间:2010-10-03  
一看很容易考虑到String常量池去啦。
承认第一次看的时候确实没考虑到运算符优先级。
面壁面壁。。。
0 请登录后投票
   发表时间:2010-10-03  
+ 号的优先级高于  == ,这题够邪恶的…………比的是其实是System.out.println( ("====>"+ a) == b),不是比a == b
0 请登录后投票
   发表时间:2010-10-04  
false!如果是a.equals(b)的结果为====>true
0 请登录后投票
   发表时间:2010-10-04  
true


String s1=new String("abc");
String s2=new String("abc");
结果如下:
false
true
0 请登录后投票
   发表时间:2010-10-05   最后修改:2010-10-05
优先级  ==   equals 比较
0 请登录后投票
   发表时间:2011-01-30  
应该是false
0 请登录后投票
   发表时间:2011-01-30  
package corejava;

public class TestSZH {

public static void main(String []args){
String a ="abc";
String b ="abc";
System.out.println(a==b);
}
}
输出;true
a==b 比两个对象是否相等  就是a字符串否与b字符串相等? a=abc  b=abc 可定相等,所以true。

package corejava;

public class TestSZH {

public static void main(String []args){
String a ="abc";
String b ="abc";
System.out.println("====>"+a==b);
}
}
输出:false


因为"======>"是字符串   a==b 是将字符串里面的东西进行比较,就是字符串里面的 a和b进行比较,肯定a不等于b,所以false。
0 请登录后投票
   发表时间:2011-01-30  
呸......
你怎么不用一个全角加号呢还编译不通过呢.....
a+b=b


肯定编译不过去
可定不能通过  a+b 就是两个字符串和在一起 ,abcabc !=abc?您说能等于abc!!!!!在说如果想编译强转吧!!!!!!
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics