日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

淺析java中String類型中“==”與“equal”的區別

瀏覽:29日期:2022-08-26 14:08:51

一、前言

1.1、首先很多人都知道,String中用“==”比較的是地址,用equals比較的是內容,很多人對此用的是記憶法,通過記憶來加強此的引用,但是其真正的原理其實并不難,當我們真正明白其為什么的時候,用起來也會更加靈活,更加有底氣(形容得不太好,朋友別見怪);

二相關知識的準備

類型常量池 運行時常量池 字符串常量池

我們今天討論的主題是當然是字符串常量池:為什么在這要把另外兩個常量池拿出說一下呢,首先小生我在網上或者cnds上看到很多人在爭論字符串常量池是存在與方法區還是堆里面,因此我在這里面非常負責任的告訴各位讀者:1、類型常量池,存放在方法區里面,每個class文件都有一個2、運行時常量池、存放在方法區里面,所有class共用3、字符串常量池:存放在堆區里面而且字符串常量池有一個特點:存放的常量唯一:三、 開始

3.1,情況一

public class Test2 {public static void main(String[] args) {String a ='張敬軒';String b ='張敬軒';System.out.println(a == b);System.out.println(a.equals(b));}}

運行結果:

淺析java中String類型中“==”與“equal”的區別

true true

解釋:因為當我們String a = “張敬軒”;的時候,會在堆里面的字符串常量池里面“搜索”是否有“張敬軒”這個對象,

有:就會將“張敬軒這個對象的地址指向a” 沒有:就會在字符串常量池里面新建立一個“張敬軒”,然后就會把地址引用賦值給a

當再聲明String b = “張敬軒';和第一次聲明String = “張敬軒”;一樣,先”搜索“,然后因為已經存在了”張敬軒“這個對象,那么就不會再創建對象,而是將存在的”張敬軒“的地址引用賦值給b,所以a和b的地址一樣,內容自然也一樣,所以兩個結果為true,不懂各位朋友懂沒懂?

3.2,情況二;

public class Test2 {public static void main(String[] args) {String a ='張敬軒'; String b = new String('張敬軒');System.out.println(a == b);System.out.println(a.equals(b));}}

結果是

淺析java中String類型中“==”與“equal”的區別

false,true解釋String a = “張敬軒”;已經解釋過了,是在堆里面的字符串常量池創建對象String b = new String(“張敬軒”);這個也是在堆區里面創建對象,但是不是在字符串常量池里面創建對象兩個不同的對象,地址自然不同,類容都是張敬軒,所以結果是false,true

3.3、情況三

public class Test2 {public static void main(String[] args) {String a = new String('張敬軒'); String b = new String('張敬軒');System.out.println(a == b);System.out.println(a.equals(b));}}

結果:false,true

淺析java中String類型中“==”與“equal”的區別

解釋,因為new (“張敬軒”);表示在堆區的非字符串常量池里面創建了兩個不同的對象,兩次new就創建了兩個,所以地址是不同的,因此結果是false,true

3.4、情況四

public class Test2 {public static void main(String[] args) {String a = '張'+'敬軒';String b = '張敬軒';System.out.println(a == b);System.out.println(a.equals(b));}}

結果是:true,true

淺析java中String類型中“==”與“equal”的區別

解釋:String = “張敬” + ”軒“;在編譯的時候就已經開始進行計算:這是Java編譯的優化機制,所以a指向的地址依舊是”張敬軒“;所以情況和前面的情況一一致,所以是true,true(注意Java編譯優化機制只針對常量不針對變量 a = a+ b(這個是沒有優化機制的,關于Java編譯機制,各位小伙伴可以去百度了解一下))

3.5、情況五

public class Test2 {public static void main(String[] args) {String a = '張';String b = '敬軒';String c =a+b;String d = '張敬軒';System.out.println(d == c);System.out.println(d.equals(c));}}

結果:

淺析java中String類型中“==”與“equal”的區別

解釋:因為a 和 b是變量,不存在什么Java優化機制,而是將兩個c = a + b存放在的是堆區的非字符常量池里面,所以是兩個不同的對象,自然為false,true3.6、最后一種情況

public class Test2 {public static void main(String[] args) {String a = '張';String b = '敬軒';String c =(a+b).intern();String d = '張敬軒';System.out.println(d == c);System.out.println(d.equals(c));}}

結果:

淺析java中String類型中“==”與“equal”的區別

解釋:intern();方法是將堆區里面的非字符常量池里面的對象強行放到字符常量池里面,因為字符常量池里面對象的唯一性,如果字符串常量池里面已經有了和”張敬軒“一樣的對象,就會將其地址引用賦值給c,沒有就相當于創建一個(也就是和之前堆區里面那個對象一樣的對象),有了的話,就會將原來有的那個“張敬軒”對象賦值給c,因為地址一樣,所以為true

總結:

== 比較的地址 (如果對象存在字符串常量池,而且類容相同,那么 == 返回的是true )equal 比較的是內容 (內容相同返回便是true)(所以在以后的開發中一般是用equal比較字符串的

各位朋友如果有錯的及時評論區指出,謝謝大家的支持

到此這篇關于淺析java中String類型中“==”與“equal”的區別的文章就介紹到這了,更多相關java String類型 ==與equal內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品一区二区三区美女 | 午夜久久tv| 97成人超碰| 欧美午夜不卡| 国产精品亚洲成在人线| 羞羞答答国产精品www一本 | 日韩中文字幕| 私拍精品福利视频在线一区| 国产精品久久久亚洲一区| 午夜精品免费| 欧美亚洲在线日韩| 免费精品一区| 精品日韩一区| 日本aⅴ精品一区二区三区| 国产一区二区高清| 亚洲一本视频| 伊人久久大香线蕉av不卡| 欧美亚洲tv| 老司机精品视频网| 亚欧洲精品视频在线观看| 蜜桃传媒麻豆第一区在线观看| 国产综合精品一区| 久久精品国产免费| 久久亚州av| 欧美99久久| 国产伦久视频在线观看| 青草国产精品| 99国产精品视频免费观看一公开 | 日韩精品视频一区二区三区| 99在线精品免费视频九九视| 日本高清不卡一区二区三区视频 | 久久gogo国模啪啪裸体| 日本成人中文字幕在线视频| 亚洲午夜在线| 亚洲精品小说| 综合亚洲色图| 丝袜亚洲另类欧美| 午夜欧美精品久久久久久久| 国产视频亚洲| 国产欧美丝祙| 欧美精品影院| 综合日韩av| 欧美日韩精品一区二区视频| 在线综合亚洲| 日韩国产一区二| 国内一区二区三区| 久久国产日韩| 亚洲激情欧美| 综合国产精品| 精品一区二区三区中文字幕| 在线成人动漫av| 亚洲18在线| 日韩av网站在线免费观看| 91亚洲国产| 日韩一区二区三区四区五区 | 国产极品一区| 久久国产成人| 日韩视频网站在线观看| 亚洲18在线| 国产综合亚洲精品一区二| 欧美啪啪一区| 精品中文一区| 日欧美一区二区| 高清一区二区三区av| 爽好多水快深点欧美视频| 狠狠躁少妇一区二区三区| 久久狠狠亚洲综合| 好看不卡的中文字幕| 青青青国产精品| av中文资源在线资源免费观看| 久久亚洲国产| 久久精品日韩欧美| 亚州av日韩av| 91久久中文| 日韩一区三区| 日韩 欧美一区二区三区| 成人国产精品一区二区网站| 在线亚洲国产精品网站| 蜜桃精品在线| 欧美xxxx中国| 国产v日韩v欧美v| 国产一区2区| 欧美黄色精品| 合欧美一区二区三区| 欧美日韩网址| 欧美日本久久| 国产精品午夜一区二区三区| 午夜亚洲福利| 石原莉奈在线亚洲三区| 99久久激情| 免费久久精品| 午夜影院欧美| 四季av一区二区凹凸精品| 久久这里只有精品一区二区| 久久免费影院| 精品三级国产| 激情黄产视频在线免费观看| 国产一区二区三区四区五区传媒| 国产精品亚洲综合色区韩国| 美女久久一区| 亚洲欧美网站在线观看| 亚洲aa在线| 乱一区二区av| 在线日韩一区| 日韩av网站免费在线| 玖玖玖国产精品| 日韩欧乱色一区二区三区在线| 日韩午夜在线| 91亚洲精品在看在线观看高清| 久久av电影| 成人精品中文字幕| 亚洲少妇自拍| 欧美成人aaa| 日韩啪啪电影网| 视频一区在线播放| 国产日韩高清一区二区三区在线| 国产a久久精品一区二区三区| 韩国精品主播一区二区在线观看| 性色av一区二区怡红| 国产精品xxxav免费视频| 久久一区二区三区喷水| 日韩不卡一二三区| 久久精品三级| 亚洲区第一页| 麻豆精品蜜桃视频网站| 伊人成人在线视频| 精品国产乱码久久久| 日韩在线中文| 国产精品久一| 日本中文字幕一区二区| 国产伦久视频在线观看| 亚洲制服少妇| 日韩在线短视频| 欧美一区二区三区免费看| 一区二区国产在线观看| 韩国精品主播一区二区在线观看 | 国产精品日韩欧美一区| 成人精品高清在线视频| 亚洲免费福利一区| 免费av一区| 欧美成人基地 | 国产综合欧美| 蜜桃视频一区二区三区在线观看| 黄色日韩精品| 91九色精品| 亚洲少妇自拍| 日韩不卡手机在线v区| 国产精品分类| 久久久久久久久久久9不雅视频| 欧美不卡在线| 视频一区日韩| 国产一区二区久久久久| 99成人超碰| 少妇精品在线| 久久久久黄色| 9国产精品视频| 久久精品国产99国产精品| 91精品啪在线观看国产18 | 成人国产精品一区二区免费麻豆| 日韩欧美精品| 日韩激情一二三区| 成人高清一区| 亚洲影院天堂中文av色| 精品一区二区三区免费看| 久久中文字幕av| 欧美日一区二区三区在线观看国产免| 97精品国产| 日韩国产精品久久久| 99精品美女| 欧美国产三级| 热久久国产精品| 人在线成免费视频| 亚洲三级av| 免费观看久久av| 91日韩免费| 久久99青青| 欧美一区网站| 噜噜噜久久亚洲精品国产品小说| 水蜜桃精品av一区二区| 日韩美女精品| 老司机精品久久| 国产精品91一区二区三区| 国产69精品久久| 你懂的亚洲视频| 国产精品一级| 国产日韩1区| 亚洲香蕉久久| 亚洲黑丝一区二区| 国产在线观看www| 精品视频在线一区二区在线| 日韩和欧美一区二区| 丝袜美腿一区二区三区| 婷婷亚洲五月| 免费视频一区三区| 欧美+亚洲+精品+三区| 五月激情久久| 久久人人88| 精品一区欧美| 国产午夜精品一区二区三区欧美| 精品日韩视频|