|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-05-06
假设您创建了自己的类,就象下面这样:
class Value { int i; } public class EqualsMethod2 { public static void main(String[] args) { Value v1 = new Value(); Value v2 = new Value(); v1.i = v2.i = 100; System.out.println(v1.equals(v2)); } } 该段代码是在thinking in java中复制下来的,我想请问为什么这段代码最后的结果为false? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-05-06
看來我的基礎也不好啊!我也不知道這個為什么?
|
|
| 返回顶楼 | |
|
时间:2008-05-06
Java最基本的东西了
与其整天上论坛看帖子,不如好好学习一下Java基础(Thinking In Java 不适合当基础教程,Core Java很适合) equals默认是==操作(在Object里面定义的,可以看看), ==比较的是对象的地址(引用),就是对象存储的地方, 2个不同的对象,存的地方当然不一样 |
|
| 返回顶楼 | |
|
时间:2008-05-06
Value v1 = new Value();
Value v2 = new Value(); System.out.println(v1.equals(v2)); 对象比较 ,根本两个对象 |
|
| 返回顶楼 | |
|
时间:2008-05-06
new 了两个对象啊
用debug看看 引用的地址是不一样的 |
|
| 返回顶楼 | |
|
时间:2008-05-06
public static void main(String[] args) {
// TODO code application logic here
File f1=new File("c:\\");
File f2=new File("c:\\");
System.out.println(f1.equals(f2));
}
這個輸出為TRUE 我為這個問題還去仔細讀了下棧與堆的區別,難道用戶自定義的,和系統自己帶的不一樣? 知道很基礎但是還是很想搞清楚! |
|
| 返回顶楼 | |
|
时间:2008-05-07
高手路過幫我看下!
|
|
| 返回顶楼 | |
|
时间:2008-05-07
File是包装类型,类中已经重写了equals方法,所以他比较的是内容,结果为true!
|
|
| 返回顶楼 | |
|
时间:2008-05-11
学习了·~呵呵我也不懂啊···metaphy说的算是学习 ··了
|
|
| 返回顶楼 | |
|
时间:2008-05-11
equal比较的是对象的等(内容+地址)
==比较的是内容 |
|
| 返回顶楼 | |







