本帖最后由 刘笑 于 2012-6-12 19:33 编辑
最近逛论坛,发现很多人搞不明白==与equal的区别,特地查了一下资料,加上自己的理解整理如下:
==操作符专门用来比较变量的值是否相等;对象内容的比较,则是equals方法做的事。比如:
int a=10;
int b=10;
则a==b将是true。
String c=new String("foo");
String d=new String("foo");
则c==d将返回false。
对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。c和d都使用了new操作符,意味着将在内存中产生两个内容为"foo"的字符串,既然是“两个”,它们自然位于不同的内存地址。所以使用"=="操作符,结果会是false。但由于equal比较的是内弄,所以如果System.out.println(c.equals(d));的话则输出true!
oh yeah!
|
|