日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

equals和=,==的区别

發(fā)布時間:2023/11/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 equals和=,==的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一. ==和equals的區(qū)別

1. ==是運算符

2. equals是String對象的方法

一般有兩種類型的比較

1. 基本數(shù)據(jù)類型的比較

2. 引用對象的比較

1. 基本數(shù)據(jù)類型的比較

==和equals都比較的是值是否相等,相等則為true,否則為false

2. 引用對象的比較

==和equals都是比較是棧內(nèi)存中的地址是否相等,相等則為true,否則為false

注意:

1. String是一個特殊的引用數(shù)據(jù)類型,==比較的是字符串對象的引用地址是否一樣,equals比較的是棧中的內(nèi)容是否一致。

??String ss = new String("abc");
??String sss = new String("abc");

??if(ss == sss){
???System.out.println("ss == sss is true");???
??}
??if(ss.equals(sss)){
???System.out.println("ss equals sss is true");
??}

控制臺輸出:
ss != sss
ss equals sss
表明:ss和sss在棧中的內(nèi)存地址不同,但是在堆中的內(nèi)容是相同的。

String ss = new String("abc");

String ssss = ss;

//判斷ss和ssss在棧中的引用地址是否一樣

?? if(ss == ssss){
???System.out.println("ss == ssss");
??}else{
???System.out.println("ss != ssss");
??}

//判斷ss和ssss在堆中的內(nèi)容是否一樣
?? if(ss.equals(ssss)){
???System.out.println("ss equals ssss");
??}else{
???System.out.println("ss not equals ssss");
??}

控制臺輸出:

ss == ssss
ss equals ssss

這表明ss和ssss是相同的對象,并且他們在堆中的內(nèi)容一樣

2. 引用對象的比較

?? TestBean obj1 = new TestBean();
?? TestBean obj2 = new TestBean();
?? TestBean obj3 = obj1;
?? if(obj1 == obj2){
??? System.out.println("obj1 == obj2");
?? }else{
??? System.out.println("obj1 != obj2");
?? }
??
?? if(obj1 == obj3){
??? System.out.println("obj1 == obj3");
?? }else{
??? System.out.println("obj1 != obj3");
?? }

控制臺輸出:

obj1!= obj2
obj1== obj3

表明obj1和obj2不是同一個對象,在棧中的引用地址不同

obj1和obj3是相同的對象,在棧中的引用地址相同

二. =和equals ==的區(qū)別

=表示的是賦值,即將=右邊的值賦給左邊的變量。equals和==是表示操作

?

轉(zhuǎn)載于:https://www.cnblogs.com/minshia/p/5950969.html

總結(jié)

以上是生活随笔為你收集整理的equals和=,==的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。