Java中的==与=有什么不同

  介绍

这篇文章给大家介绍Java中的==与=有什么不同,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强> Java中==运算符与=方法的区别及实习生方法详解

1只;==运算符与equals()方法
2。hashCode()方法的应用
3。实习生()方法

/*   来自于xixifeng.com   作者:习习风(StellAah)   */公开课AboutString2   {   公共静态void main (String [] arsgs)   {   字符串的名字=皒ixifeng.com";   字符串myName3=皒ixifeng";   字符串myName4=?com";   字符串myName5=myName3 + myName4;   字符串myName6=皒ixifeng.com";      如果(名字==myName5)   {      System.out.println(“名字==myName5");   }   其他的   {   System.out.println(“名字=?名字);   System.out.println (“myName5=? myName5);   System.out.println(“名字!=myName5");   }//经运行打印出:名字!=myName5      如果(名字==myName6)   {   System.out.println(“名字==myName6");   }   其他的   {   System.out.println(“名字!=myName6");   }//经运行得出:名字!=myName5名字==myName6//名字,myName5 (myName5的值是由myName3 + myName4得到的),myName6这三个对象的值是相等的,为什么它们之间用==进行运算的结果是名字!=myName5名字==myName6呢,# 63;//原因在于==运算符//显然==参与字符串运算中不是用来比较值的,而是用来比较对象是否相等的。//那么在字符串运算中,通过什么方法来比较它们的值是否相等呢,java提供了=()方法,主要用于比较对象的值是否相等//示例如下://名字==myName5是假(不是同一个对象)   如果(myName.equals (myName5))   {   System.out.println (“myName.equals (myName5)比较的结果是真的!“);   }   其他的   {   System.out.println (“myName.equals (myName5)比较的结果是假!“);   }//经运行输出:myName.equals (myName5)比较的结果是真的!在由于名字与myName5不是同一个对象,充分说明://equals()方法(是用来比较对象的值是否相等)//再抛出疑问:是不是两个对象的哈希值相等就说明这两个对象相等呢,# 63;//(由上述测试的名字==myName5得出假①表明的名字与myName5不是同一个对象)   System.out.println (myName.hashCode ());   System.out.println (myName5.hashCode ());//经测试②的名字与myName5的哈希值相等//由①,②得出:两个对象的hashCode值相等,不能表明其对象也相等。//抛出疑问:怎样使名字与myName5的对象相等呢,# 63;//引入实习生()方法   myName5=myName5.intern ();   如果(名字==myName5)   {      System.out.println(“(名字==myName5)得true");   }   其他的   {   System.out.println(“(名字==myName5)得false");   }//经运行打印出:(名字==myName5)得正确//结论:实习生()方法能使两个(对象不相等而值相等的)对象变得相等//myName5.intern();的意思,可以解释为:myName5在内存中查找对象嫁给自己,条件是,该对象要与自己的值相等。找到了,就指定该对象。//myName5找到对象,并认定,就不必再创建对象了,所以说这样做,可以节约内存资源。//抛出疑问:什么样的对象建议使用实习生()呢,# 63;//名字=皒ixifeng.com"myName6=皒ixifeng.com",名字与myName6的对象是相等的,上述已经证实。//所以说,对象在直接赋予同样的值的时候没有必要用实习生()。//名字=皒ixifeng.com"myName5=myName3 + myName4,它们的值相等,但是对象不相等,上述已经证实。//所以说,对象在间接赋予(有可能与已有对象)同样的值的时候,建议用一下实习生()方法,从而可公用内存中存在的对象。//==参与int型运算中,也营造类似的比较   int i=8;   int j=3;   int k=5;   int m=j + k;   int n=8;   如果(我==)   {   System.out.println (“i=? i);   System.out.println (“m=? m);   System.out.println(“我==m");   }   其他的   {   System.out.println(“我!=m");   }      如果(我==n)   {   System.out.println (“……“);   System.out.println (“i=? i);   System.out.println (“n=? n);   System.out.println(“我==n");   }   其他的   {   System.out.println(“我!=n");   }//经运行得出我=m (m的值由j + k得到),i=n//我,m, n的值都相等,由于我得==出真我==n得出正确的//所以可以得出结论:==参与非对象类型运算时,是用来比较常量的值是否相等   }   }   

综上所属,得出如下结论:

1)==运算符参与对象类型运算时是用来比较对象是否想得的。

Java中的==与=有什么不同