java 雙等號(==) 與equals方法的介紹和區別

java 雙等號(==) 與equals方法的介紹和區別

1.基本數據類型與equals方法

  1. == 用于比較基本數據類型時,比較的是值
  2. ==用于比較引用數據類型時,比較的是地址
  3. equals方法在Object類中比較的也是地址,因為在低層也是使用==進行比較
  4. String類調用equals方法比較的內容,因為String類對equals方法進行了重寫,改為了比較字符串的內容
package com.qfedu.test2;
/*** == 與 equals方法區別* @author **/
public class Person {private String name;private String idCard;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getIdCard() {return idCard;}public void setIdCard(String idCard) {this.idCard = idCard;}public Person(String name, String idCard) {this.name = name;this.idCard = idCard;}public Person() {}public static void main(String[] args) {Person p1 = new Person("張三","abcd");Person p2 = new Person("張三","abc");//== 比較的是地址 falseSystem.out.println(p1 == p2);//Object類中equals方法低層使用的也是 == 所以比較的也是地址 打印false System.out.println(p1.equals(p2));System.out.println("======================");//String 也是一個類 可以創建對象并賦值String str1 = new String("abc");String str2 = new String("abc");//==比較的是地址  falseSystem.out.println(str1 == str2);//String 中重寫的equals方法 比較的是內容 輸出trueSystem.out.println(str1.equals(str2));}}

2.String類中:

  1. String 對象直接使用等號賦值,會將值存儲在方法區的字符串常量池中

  2. String使用等號直接賦值時,在存放之前,會先檢查常量池中是否有相同的字符串內容,如果存在,直接使用已存在字符串內容,如果不存在,將以一個新的地址存放在常量中

    注意:如果通過new對象進行賦值,每個對象都會是一個新的地址

public class Test1 {public static void main(String[] args) {//String 在方法區有一個存儲字符串的常量池,存放之前會檢查常量池是否存在,//存在的話直接使用,所以地址相同String str1 = "121";String str2 = "121";//new 對象直接在堆中 每次創建都會產生一個地址String str3 = new String("121");String str4 = new String("121");System.out.println(str1 == str2);System.out.println(str3 == str4);System.out.println(str2 == str3);}
}

3.整數包裝類中

  1. 數值包裝類,取值在byte(-128~127)之間,直接使用等號(=)賦值時,多個對象比較,結果為true,超過范圍為false
  2. char類型也遵循這個規則
public class Test1 {public static void main(String[] args) {Integer i1 = 12;Integer i2 = 12;System.out.println(i1==i2);//true//浮點型不適用Double d1 = 12D;Double d2 = 12D;System.out.println(d1 == d2);//falseLong l1 = 123L;Long l2 = 123L;System.out.println(l1 == l2);//true}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529267.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529267.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529267.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

verilog時鐘翻轉怎么寫_verilog實時可調時鐘代碼

module clock(clk,out,reset,cin,ocom,count,countmin,tgm,tdm,tgs,tds);output[3:0] ocom;output[7:0] out;output count,countmin;input cin,clk,reset;input tgm;//高位的分input tdm;//地位的分input tgs;//高位的秒input tds;//地位的秒reg [7:0] out_s;reg[7:0] out_min;…

Java ArrayList與LinkedList數據結構和特點

Java ArrayList與LinkedList數據結構和特點 1. ArrayList 數據結構: ArrayList低層是實現的是一個Object類型的數組(空間連續,類型相同)當我們調用ArrayList無參構造方法,將會創建一個Object類型的**空**數組當我們第…

多線程 循環 鎖_大多數人還不清楚的iOS多線程

你不知道的的 iOS 多線程程序員用有限的生命去追求無限的知識。有言在先首先我不是故意要做標題黨的,也不是我要炒冷飯,我只是想換個姿勢看多線程,本文大部分內容在分析如何造死鎖,奈何功力尚淺,然而再淺,也…

Java HashMap與Hashtable數據結構和特點+HashSet簡述

Java HashMap與Hashtable數據結構和特點HashSet簡述 1.HashMap HashMap就是基于數組和鏈表的數據結構:JDK1.7使用 數組單向鏈表;JDK1.8使用 數組單向鏈表紅黑樹 HashMap有兩個重要的參數: 一個是負載因子 0.75:表示數組使用率達…

aj6 stamps storm_親友限定的 AJ 6 要發了?3 月好鞋發售清單 for girls

原標題:親友限定的 AJ 6 要發了?3 月好鞋發售清單 for girls🌸🌸🌸Air Jordan 1 Low Slip “Chicago”Color:Varsity Red/Black/WhiteStyle Code:BQ8462-601Price:$110adidas WMNS U…

學校為什么要單位接收函_學校、小區運動場為什么要選擇塑膠跑道

隨著人們生活水平的不斷提高,科技的日新月異,各行各業都向著更加健康環保安全舒適的方向邁進。就拿小區、學校的運動場所地坪為例,傳統的“沙土跑道”已經被運動塑膠跑道所替代。那么運動場為什么會選擇塑膠跑道呢? 塑膠跑道又稱全…

java中常見的專業術語單詞縮寫,看你認識幾個

java中常見的專業術語單詞縮寫,看你認識幾個 單詞全稱單詞縮寫中文意思備注Garbage CollectionGC垃圾回收Object Oriented ProgrammingOOP面向對象程序設計Document Object ModelDOM文檔對象模型Browser Object ModelBOM游覽器對象模型uniform resource locatorurl…

pitstop插件使用說明_【學員分享】程序員效率神器,最常用VIM插件安裝大全

相信大家多次被推薦用vim作為編輯程序,知道vim編輯有很多優點,但是vim初始界面太原始了,安裝了之后只能用來編輯,如果要運行就需要退出去運行,麻煩死了。回想用現成的IDE是多么的舒服。但是為了更好的學習,…

JVM思維導圖、正則表達式符號圖、企業內部開發流程圖

JVM思維導圖、正則表達式符號圖、企業內部開發流程圖 1.JVM思維導圖: 2.正則表達式符號圖: 3.企業內部開發流程圖:

蕭縣機器人_全國總決賽第一名!蕭縣楊樓的這位學生厲害了

 提示:點擊上方"蕭縣關注"↑免費訂閱本刊點擊上方關注我們,免費訂閱更多精彩內容&…

關于JSP頁面無法加載css,游覽器訪問jsp頁面樣式未生效導致亂序

關于JSP頁面無法加載css,游覽器訪問jsp頁面樣式未生效導致亂序 1.修改自己過濾器中對編碼格式的修改 如圖: 代碼如下: public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOE…

將視圖轉為image_JavaScript二進制數組(2)TypedArray視圖

ArrayBuffer對象作為內存區域可以存放多種類型的數據。同一段內存,不同數據有不同的解讀方式,這種解讀方式稱為“視圖(view)”。ArrayBuffer有兩種類型的視圖,一種是類型化數組視圖(TypedArray)…

八大基本數據類型、數組和包裝類默認值

八大基本數據類型、數組和包裝類默認值 1.八大基本數據類型 Java八種基本數據類型總結序號數據類型大小/字節封裝類默認值可表示數據范圍1byte1Byte0-128~1272short2Short0-32768~327673int4Integer0-2147483648~21474836474long8Long0-9223372036854775808~9223372036854775…

解決IDEA中maven工程的jsp、jstl依賴導入了 ,但是 jsp頁面的uri卻不提示(手動輸上也報紅)

解決IDEA中maven工程的jsp、jstl依賴導入了 ,但是 jsp頁面的uri卻不提示(手動輸上也報紅) 出現原因:idea內有緩存 解決辦法:File --> Invalidate Caches / Restart… --> lnvalidate and Restart idea版本&#…

空格 過濾多個_CAD選擇過濾器的運算符如何使用?

選擇過濾器FILTER在CAD早期版本中是擴展工具的一個功能,到了高版本變成標配的功能,但在浩辰CAD的菜單或工具面板中我還找到選擇過濾器的命令。浩辰CAD面板、右鍵菜單和特性面板倒是都提供了快速選擇的功能,快速選擇功能應該是借鑒選擇過濾器開…

Java中各種常見的生命周期

Java中各種常見的生命周期 1.Spring bean的生命周期? ? 1、Spring 容器根據配置中的 bean 定義中實例化 bean。 ? 2、Spring 使用依賴注入填充所有屬性,如 bean 中所定義的配置。 ? 3、如果 bean 實現 BeanNameAware 接口,則工廠通過傳…

各層作用_終于弄明白了 Singleton,Transient,Scoped 的作用域是如何實現的

一:背景1. 講故事前幾天有位朋友讓我有時間分析一下 aspnetcore 中為什么向 ServiceCollection 中注入的 Class 可以做到 Singleton,Transient,Scoped,挺有意思,這篇就來聊一聊這一話題,自從 core 中有了 S…

權限管理系統_在Gitee狂攬11K Star!這個SpringCloud的權限管理系統你必須知道

SpringCloud 大家都很熟悉了,它作為一套完整的微服務解決方案,廣受 Java 開發者們的好評, 今天就為大家介紹一款 Gitee 上的王牌項目,基于 SpringCloud 的權限管理系統——Pig。項目名稱:Pig項目作者:pig4c…

導出排除的表_excel拆分實例:如何快速制作考勤統計分析表

編按:面對新的統計需求,很多人會一下變懵,不知如何辦。如果涉及的統計有一千多行數據,哭的心思都有了:什么時候才能下班喲!今天老菜鳥通過考勤統計分析表實例分享自己面對新統計需求的解決方法:…

rds 如何學習數據庫_如何將本地數據庫遷移到云數據庫 RDS 上?

使用數據傳輸服務 ( DTS ) 將本地數據庫遷移到 阿里云的云數據庫 RDS ,可以實現應用不停服務的情況下,平滑完成數據庫的遷移工作。接下來我們將學習下如何使用 DTS 將本地數據庫遷移到 RDS 上。背景DTS 支持 SQL Server 數據結構遷移和全量遷移。DTS 支持…