equals & ==

1.  先了解:string a=new string("EffieR"); 表示一定要分配内存string对象,还有相应的引  用。string b="EffieR",此时就不再分配内存,而是建立一个新的引用b指向同一个对象"EffieR".
 
例如:
public class TestOne
 {
    public static void main(String[] args) {
        String s1 = "Monday";
        String s2 = "Monday";
        if (s1 == s2)
            System.out.println("s1 == s2");
        else
            System.out.println("s1 != s2");
    }
}


2. 如果是两个新的对象(new),内存肯定不同,那么引用比较时也不相同。
    而调用equals时则是比较对象的内容,可实现我们的内容比较。
例如:
public class  Testtwo
{
 public static void main(String[] args)
 {
   String a=new String("foo");
         String b=new String("foo");
  
   System.out.println("==:"+ (a==b) );
   System.out.println("equals: "+ a.equals(b));
  
  
 }
}

3. string.intern(); 来释放相同值的string内存

例如:
public class TestThree
{

 /**
  * @param args
  */
 public static void main(String[] args)
 {
  // TODO Auto-generated method stub
   String a="foo";
  
         String b=new String("foo").intern();
  
   System.out.println("==:"+ (a==b) );
   System.out.println("equals: "+ a.equals(b));
  

 }

}

4. 测试直接继承Object的方法equals()

 例如:
class testEquals
{
 testEquals()
 {
  System.out.println("testEquals object");
 }

};
 
public class  TestFour
{
 public static void main(String[] args)
 {
  
  
         testEquals e1=new testEquals();
   testEquals e2=new testEquals();
   System.out.println(e1.equals(e2));
   
 }
}

5. 创建自己的类,覆盖equals()


例如:

class testEquals2
{
    private int a;
 testEquals2(int p)
 {
  
  a=p;
  
 }
 public int getMember()
 {
  return this.a;
 }
 public boolean equals(testEquals2 ob)
 {
  int a,b;
  a=this.getMember();
  b=ob.getMember();
     return a==b;
 }
};

public class TestFive
{
 public static void main(String[] args)
 {
      testEquals2 e3=new testEquals2(11);
   testEquals2 e4=new testEquals2(11);
   System.out.println(e3.equals(e4));
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值