淺談java 中equals和==的區(qū)別
本文實(shí)例為大家分享了java 中equals和==的區(qū)別的具體代碼,供大家參考,具體內(nèi)容如下
java9舉例代碼:
String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); String str4 = new String("abc");
當(dāng): str1 == str2 輸出:true 當(dāng):str1.equals(str2); 輸出:true
當(dāng): str1 == str3 輸出:false 當(dāng):str1.equals(str3); 輸出:true
當(dāng): str3 == str4 輸出:false 當(dāng):str3.equals(str4); 輸出:true
涉及到的細(xì)節(jié):
- 可以通過String中intern方法,字符串對(duì)象在常量池中和它相等的字符串的引用
str3.intern() == str4.intern() 輸出:true
str1.intern().equals(str2.intern()) 輸出:true
str1.intern() == str1 輸出:false
- String str = new String("abc");創(chuàng)建了幾個(gè)對(duì)象?
首先要看常量池里是否有“abc”這個(gè)字符串,如果有(String str = "abc";出現(xiàn)時(shí)則有),則創(chuàng)建一個(gè),如果沒有,則創(chuàng)建兩個(gè)(一個(gè)在常量池,一個(gè)在堆中)。
== 和 equals 區(qū)別:
對(duì)于 == :
作用于基本數(shù)據(jù)類型的變量,則直接比較其存儲(chǔ)的 “值”是否相等;
作用于引用類型的變量,則比較的是所指向的對(duì)象的地址;
對(duì)于 equals:
equals方法不能作用于基本數(shù)據(jù)類型的變量;
如果沒有對(duì)Object中equals方法進(jìn)行重寫,則比較的是引用類型的變量所指向的對(duì)象的地址,反之則比較的是內(nèi)容;
以上所述是小編給大家介紹的java 中equals和==的區(qū)別詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Java回調(diào)函數(shù)與觀察者模式實(shí)例代碼
這篇文章主要介紹了Java回調(diào)函數(shù)與觀察者模式實(shí)例代碼,簡單介紹了使用觀察者模式的場(chǎng)景,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02Spring?Session(分布式Session共享)實(shí)現(xiàn)示例
這篇文章主要介紹了Spring?Session(分布式Session共享)實(shí)現(xiàn)示例,文章內(nèi)容詳細(xì),需要的朋友可以參考下2023-01-01Java中RabbitMQ消息隊(duì)列的交換機(jī)詳解
這篇文章主要介紹了Java中的RabbitMQ交換機(jī)詳解,消息隊(duì)列是指利用高效可靠的消息傳遞機(jī)制進(jìn)行與平臺(tái)無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成,是在消息的傳輸過程中保存消息的容器,需要的朋友可以參考下2023-07-07Java 無參數(shù)構(gòu)造函數(shù)的應(yīng)用
本篇文章主要介紹了Java 無參數(shù)構(gòu)造函數(shù)的應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04SpringBoot遠(yuǎn)程訪問redis服務(wù)器問題剖析
使用了SpringBoot的項(xiàng)目,在遠(yuǎn)程連接Redis服務(wù)器時(shí),會(huì)遇倒一些小問題,下面通過本文給大家全面解析SpringBoot遠(yuǎn)程訪問redis服務(wù)器問題,需要的朋友參考下吧2017-04-04Netty網(wǎng)絡(luò)編程零基礎(chǔ)入門
Netty是一個(gè)異步的、基于事件驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用框架,用于快速開發(fā)可維護(hù)、高性能的網(wǎng)絡(luò)服務(wù)器和客戶端,如果你還不了解它的使用,就趕快繼續(xù)往下看吧2022-08-08