关于java中==;!=;equal()的一点点思考

首先看下面四段代码:

 

package tij103;

public class Equivalence {
    public static void main(String[] args){
        Integer n1 = new Integer(47);
        Integer n2 = new Integer(47);
        System.out.println(n1 == n2);
        System.out.println(n1 != n2);
    }

}
结果是false

         true

 

/**************************************************/

public class EqualsMethod {
    public static void main(String[] args){
        Integer n1 = new Integer(47);
        Integer n2 = new Integer(47);
        System.out.println(n1.equals(n2));
    }
}

结果是true

 

/****************************************************/

package TIJ104;
class Value{
    int i;
}
public class EqualsMethod2 {
    public static void main(String[] args){
        Value v1 = new Value();
        Value v2 = new Value();
        v1.i=100;
            v2.i=100;
        System.out.println(v1.equals(v2));
    }
}
结果是false

 

 

 

/************************************************/

 

class Value{
    int i;
}
public class EqualsMethod2 {
    public static void main(String[] args){
        Value v1 = new Value();
        Value v2 = new Value();
        v1.i=100;
            v2.i=100;
        System.out.println(v1.i==v2.i);
    }
}

结果是true

 

/*************************************************/

      这几段代码把我彻底弄糊涂了,对着本英文书研究半天,得出来原因是:==和!=比较的是对象的引用(可能翻译得有点烂呵。。),equal( )比较的是对象(除了primitive),所以,定义了新的class,则在比较的时候用==和!=;如果没有,则需用equal()函数来比较。

      看似很难的问题,写出来就容易理解了。

      关于上周说的那个 import static net.mindview.util.Print.*报错的问题,实际上是因为TIJ这本书需要下载一个文档,而在这个文档rar里有很多的.java文件需要拿来直接用,其中就有一个net.java。而不是IDE的问题,至于怎么导到eclipse里,虽然问了学长,老实说,我依旧没有弄成功。还请各位大虾们拔刀相助。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值