麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 在Java中比較字符串和等于比較

在Java中比較字符串和等于比較

來源:千鋒教育
發布人:syq
時間: 2022-09-30 14:52:46 1664520766

  今天我們將討論一個非常重要和有趣的話題,即比較對象與對象(比較字符串和等于)。那么在Java中,對象A究竟什么時候等于對象B呢?讓我們嘗試寫一個例子:控制臺輸出:假等待,停止。為什么這兩輛車不相等?我們為它們分配了相同的屬性,但比較的結果是假的。答案很簡單。該運算符比較對象引用,而不是對象屬性。兩個對象甚至可能有 500 個具有相同值的字段,但比較它們仍然會產生 false。

11

  ==汽車1和汽車2指向兩個不同的對象,即指向兩個不同的地址。想象一下,你正在比較人們的情況。當然,在世界的某個地方,有一個人和你有同樣的名字,眼睛的顏色,年齡,身高,頭發顏色等。這讓你們在很多方面都很相似,但你們仍然不是雙胞胎——你們顯然不是同一個人。

  當我們使用它來比較兩個對象時,運算符使用大致相同的邏輯。但是,如果您需要程序使用不同的邏輯,該怎么辦?例如,假設您的程序執行 DNA 分析。它比較了兩個人的遺傳密碼,并確定他們是否是雙胞胎。 控制臺輸出:false 我們得到相同的邏輯結果(因為我們沒有太大變化),但現在這個邏輯不好!畢竟,在現實生活中,DNA分析應該給我們100%的保證,我們有雙胞胎站在我們面前。但是我們的程序和操作員告訴我們相反的情況。我們如何改變這種行為,并確保程序在DNA匹配時輸出正確的結果?Java對此有一種特殊的方法:==

12

  ==等于().喜歡到字符串()方法,我們之前討論過,等于()屬于對象class — Java 中最重要的類,所有其他類派生自的類。但等于()不會自行更改程序的行為: 控制臺輸出: false 完全相同的結果,那么我們需要此方法做什么呢?:/一切都很簡單。這里的問題是,我們目前正在使用此方法,因為它是在

13

  對象類。如果我們進入代碼對象類并查看方法的實現,這就是我們將看到的:這就是程序行為沒有改變的原因!完全相同的運算符(用于比較引用)在

14

  ==等于()方法對象類。但是這種方法的訣竅在于我們可以覆蓋它。覆蓋方式編寫自己的等于()我們的方法男人類,給它我們需要的行為!目前,我們不喜歡這樣一個事實:人1.等于(人2)本質上等效于人1 == 人2.以下是我們在這種情況下將執行的操作: 控制臺輸出:true 現在我們得到了一個完全不同的結果!通過編寫我們自己的

15

  等于()方法并使用它而不是標準方法,我們已經產生了正確的行為:現在,如果兩個人具有相同的DNA,程序報告“DNA分析已證明他們是雙胞胎”并返回真實!通過覆蓋等于()方法在你的類中,你可以很容易地創建任何你需要的對象比較邏輯。事實上,我們剛剛談到了對象比較。在我們面前,關于這個主題仍然有一個很大的獨立課程(如果你有興趣,你現在瀏覽一下)。

  在 Java 中比較字符串

  為什么我們要將字符串比較與其他所有內容分開考慮?現實情況是,字符串本身就是編程中的一個主題。首先,如果你把所有曾經編寫的Java程序都拿來,你會發現其中大約25%的對象是字符串。所以這個話題非常重要。其次,比較字符串的過程確實與其他對象非常不同。考慮一個簡單的例子:控制臺輸出:false 但是為什么我們得到假呢?畢竟,字符串完全相同,逐字逐句:/您可能已經猜到了原因:

16

  這是因為運算符比較引用==!清楚s1和s2內存中具有不同的地址。如果你想到這一點,那么讓我們重新制作我們的例子:現在我們又有兩個引用,但結果恰恰相反:控制臺輸出:真的無助地困惑?讓我們弄清楚發生了什么。操作員確實比較了內存地址。這總是正確的,你不需要懷疑它。這意味著如果

15

  ==s1 == s2返回 true,則這兩個字符串具有相同的地址。這是真的!現在是時候向您介紹用于存儲字符串的特殊內存區域:字符串池

01

  字符串池是用于存儲您在程序中創建的所有字符串值的區域。為什么創建它?如前所述,字符串表示所有對象的巨大百分比。任何大型程序都會創建大量字符串。創建字符串池是為了節省內存:字符串被放置在那里,然后創建的字符串引用相同的內存區域 - 無需每次都分配額外的內存。每次你寫字符串 = “.....”程序檢查字符串池中是否有相同的字符串。如果有,則不會創建新字符串。新的引用將指向字符串池中的相同地址(相同字符串所在的地址)。所以當我們寫

19

  s2指向 與 相同的位置s1.第一條語句在字符串池中創建新字符串。第二個語句僅引用與s1.您可以再制作500個相同的字符串,結果不會改變。等一會。如果這是真的,那么為什么這個例子以前不起作用呢? 我認為你的直覺已經告訴你原因=)在進一步閱讀之前嘗試猜測。您可以看到這兩個字符串以不同的方式聲明。一個帶有新操作員,另一個沒有新操作員。原因就在這里。當

20

  新增功能運算符用于創建對象,它強制為對象分配新的內存區域。以及使用新增功能不會最終出現在字符串池中 — 它成為一個單獨的對象,即使它的文本與字符串池中的字符串完全匹配。也就是說,如果我們編寫以下代碼:在內存中,它看起來像這樣:

21

02

  每次使用創建新對象時新增功能,則分配一個新的內存區域,即使新字符串內的文本是相同的!看來我們已經找到了操作員。但是我們的新認識呢,==等于()方法? 控制臺輸出:真正有趣。我們確信

23

  s1和s2指向內存中的不同區域。但是等于()方法仍然告訴我們它們是相等的。為什么?請記住,我們之前說過等于()方法可以被覆蓋以比較我們想要的對象?這就是他們所做的字符串類。它覆蓋等于()方法。它不是比較引用,而是比較字符串中的字符序列。如果文本相同,則它們是如何創建的或存儲在何處并不重要:無論是在字符串池中還是在單獨的內存區域中。比較的結果將為真。順便說一句,Java允許您執行不區分大小寫的字符串比較。通常,如果其中一個字符串具有全部大寫字母,則比較的結果將為 false:控制臺輸出:false 對于不區分大小寫的比較,

24

  字符串類具有等于虛無案例()方法。如果您只關心比較特定字符的順序而不是字母大小寫,則可以使用它。例如,這在比較兩個地址時可能會有所幫助:在這種情況下,我們顯然是在談論相同的地址,因此使用

25

  等于虛無案例()方法。

  字符串.實習生() 方法

  這字符串類還有一個棘手的方法:實習生();這實習生()方法直接與字符串池一起工作。如果您撥打實習生()方法在一些字符串上:

  它檢查字符串池中是否有匹配的字符串

  如果有,它將返回對池中字符串的引用

  如果不是,它將字符串添加到字符串池并返回對它的引用。

  使用后實習生()字符串引用上的方法,該方法使用新增功能,我們可以使用運算符將其與字符串池中的字符串引用進行比較。 控制臺輸出:true 當我們之前比較這些字符串時,沒有==

26

  實習生(),結果是錯誤的。現在實習生()方法檢查字符串“CodeGym是學習Java的最佳站點!”是否在字符串池中。當然,它是:我們創建它與我們檢查

  String s1 = "CodeGym is the best website for learning Java!";

  s1和返回的引用s2.實習生()指向內存的同一區域。當然,他們確實:)總之,記住并應用這個重要的規則:始終使用等于()比較字符串的方法!在比較字符串時,我們幾乎總是想比較它們的字符,而不是引用,內存區域或其他任何東西。這等于()方法完全符合您的需要。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 午夜精品在线| 一级日本黄色片| 女人18片毛片60分钟| 成人免费漫画在线播放| 成人福利电影在线观看| 波多野结衣不打码视频| 岛国片免费看| 87福利网| 性色a∨人人爽网站| 再深点灬舒服灬太大了添学长 | 欧美夫妇交换完整版随便看| 香港三级电影在线观看| 久久综合狠狠色综合伊人| 永久免费bbbbbb视频| 好色先生tv网站| 2017狠狠干| 在线播放国产不卡免费视频 | 爱情岛亚洲论坛在线观看| 日韩大片高清播放器好| 夜夜操夜夜爱| 美女被无套进入| 男人桶女人叽叽| 99视频精品在线| 好男人社区神马在线观看www| 色综合久久综合网观看| 国产真实乱了全集mp4| 国产性生大片免费观看性 | 四虎在线视频免费观看| 999国产精品999久久久久久| 欧美性生活视频免费| 日本三级电电影在线看| 好男人好视频手机在线| 出差被绝伦上司侵犯中文字幕| 亚洲国产精品自产在线播放| 免费人成在线| 人人揉人人捏人人添| 羞涩影院| 里番acg全彩本子在线观看 | 国产精品99久久久久久www| 美女扒开尿口让男人插| 亚洲综合色视频在线观看|