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

您的位置:首頁技術(shù)文章
文章詳情頁

淺析java中String類型中“==”與“equal”的區(qū)別

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

一、前言

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

二相關(guān)知識的準(zhǔn)備

類型常量池 運(yùn)行時(shí)常量池 字符串常量池

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

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));}}

運(yùn)行結(jié)果:

淺析java中String類型中“==”與“equal”的區(qū)別

true true

解釋:因?yàn)楫?dāng)我們String a = “張敬軒”;的時(shí)候,會(huì)在堆里面的字符串常量池里面“搜索”是否有“張敬軒”這個(gè)對象,

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

當(dāng)再聲明String b = “張敬軒';和第一次聲明String = “張敬軒”;一樣,先”搜索“,然后因?yàn)橐呀?jīng)存在了”張敬軒“這個(gè)對象,那么就不會(huì)再創(chuàng)建對象,而是將存在的”張敬軒“的地址引用賦值給b,所以a和b的地址一樣,內(nèi)容自然也一樣,所以兩個(gè)結(jié)果為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));}}

結(jié)果是

淺析java中String類型中“==”與“equal”的區(qū)別

false,true解釋String a = “張敬軒”;已經(jīng)解釋過了,是在堆里面的字符串常量池創(chuàng)建對象String b = new String(“張敬軒”);這個(gè)也是在堆區(qū)里面創(chuàng)建對象,但是不是在字符串常量池里面創(chuàng)建對象兩個(gè)不同的對象,地址自然不同,類容都是張敬軒,所以結(jié)果是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));}}

結(jié)果:false,true

淺析java中String類型中“==”與“equal”的區(qū)別

解釋,因?yàn)閚ew (“張敬軒”);表示在堆區(qū)的非字符串常量池里面創(chuàng)建了兩個(gè)不同的對象,兩次new就創(chuàng)建了兩個(gè),所以地址是不同的,因此結(jié)果是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));}}

結(jié)果是:true,true

淺析java中String類型中“==”與“equal”的區(qū)別

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

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));}}

結(jié)果:

淺析java中String類型中“==”與“equal”的區(qū)別

解釋:因?yàn)閍 和 b是變量,不存在什么Java優(yōu)化機(jī)制,而是將兩個(gè)c = a + b存放在的是堆區(qū)的非字符常量池里面,所以是兩個(gè)不同的對象,自然為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));}}

結(jié)果:

淺析java中String類型中“==”與“equal”的區(qū)別

解釋:intern();方法是將堆區(qū)里面的非字符常量池里面的對象強(qiáng)行放到字符常量池里面,因?yàn)樽址A砍乩锩鎸ο蟮奈ㄒ恍裕绻址A砍乩锩嬉呀?jīng)有了和”張敬軒“一樣的對象,就會(huì)將其地址引用賦值給c,沒有就相當(dāng)于創(chuàng)建一個(gè)(也就是和之前堆區(qū)里面那個(gè)對象一樣的對象),有了的話,就會(huì)將原來有的那個(gè)“張敬軒”對象賦值給c,因?yàn)榈刂芬粯樱詾閠rue

總結(jié):

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

各位朋友如果有錯(cuò)的及時(shí)評論區(qū)指出,謝謝大家的支持

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

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美高清一区| 视频一区中文| 亚洲精品在线影院| 夜夜嗨av一区二区三区网站四季av| 91一区二区三区四区| 国产一区 二区| 亚洲免费一区三区| 亚洲免费精品| 老色鬼精品视频在线观看播放| 国产黄色一区| 国产欧美日韩一级| 亚欧成人精品| 亚洲三级精品| 日韩国产欧美在线播放| 综合国产精品| 亚洲欧美日韩国产一区二区| 欧美1级日本1级| 久久一区二区中文字幕| 日韩欧美1区| 在线手机中文字幕| 久久精品天堂| 国内自拍视频一区二区三区| 麻豆国产一区| www.com.cn成人| 不卡福利视频| 精品三级在线| 91综合网人人| 丁香六月综合| 夜久久久久久| 老司机久久99久久精品播放免费| 黄色成人91| 99在线精品免费视频九九视| 在线成人直播| 亚洲精品第一| 国产女人18毛片水真多18精品| 国产精品久久久久久久久免费高清| 国产日韩中文在线中文字幕| 欧美一区=区三区| 中文字幕在线看片| 国产在线不卡| 国产精品丝袜xxxxxxx| 免费视频最近日韩| 婷婷视频一区二区三区| 国产日韩1区| 国产一区国产二区国产三区 | 蜜臀va亚洲va欧美va天堂| 蜜臀va亚洲va欧美va天堂| 日本午夜精品一区二区三区电影| 国产日韩一区二区三免费高清| 韩国三级一区| 91精品高清| 中文字幕日韩亚洲| 国产日韩欧美一区二区三区 | 国产三级一区| 91一区二区| 美国欧美日韩国产在线播放| 丝瓜av网站精品一区二区| 国产精品一区二区美女视频免费看| 色爱av综合网| 日韩精品久久久久久久软件91| 日韩中文影院| 国产亚洲一卡2卡3卡4卡新区| 日韩av首页| 国产日韩视频在线| 尹人成人综合网| 国产一区2区在线观看| 人人精品人人爱| 91av亚洲| 国产精品最新| 一区二区自拍| 日本精品黄色| 日韩一区精品字幕| 精品国产鲁一鲁****| 亚洲一区有码| 99国产精品免费视频观看| 国产精品伊人| 国产亚洲精品久久久久婷婷瑜伽| 国产精品久久久久久久久久10秀| 日韩高清三区| 一区二区自拍| 超碰超碰人人人人精品| 国产日韩1区| 亚洲区欧美区| 国产农村妇女精品一区二区| 成人小电影网站| 欧美激情99| 亚洲伊人影院| jiujiure精品视频播放| 成人片免费看| 精品久久在线| 国产精品久久久亚洲一区| 亚洲精品大片| 视频一区二区不卡| 国精品一区二区| 国产成人久久精品麻豆二区| 国产精品久久久久77777丨| 日韩高清不卡在线| 亚洲人成网站在线在线观看| 狠狠爱www人成狠狠爱综合网| 色婷婷久久久| 蜜桃av.网站在线观看| 久久精品资源| 欧美精品成人| 久久不见久久见免费视频7| 91亚洲精品在看在线观看高清| 中文不卡在线| 亚洲久草在线| 亚洲精选久久| 婷婷综合一区| 亚洲深深色噜噜狠狠爱网站 | 亚洲激情国产| 婷婷久久一区| 91精品在线观看国产| 日韩深夜视频| 亚洲精品在线影院| 中文字幕在线视频网站| 日韩综合在线| 国产 日韩 欧美一区| 日韩欧美一区二区三区在线视频| 电影91久久久| 精品欧美日韩精品| 久久久久久夜| 久久uomeier| 久久裸体视频| 欧美女激情福利| 亚洲国产成人精品女人| 99热精品在线观看| 午夜精品婷婷| 亚洲一区二区三区久久久| 亚洲18在线| 国产乱人伦精品一区| 老司机精品视频网| 中文字幕成在线观看| 欧美午夜精彩| 三级欧美在线一区| 日韩国产欧美三级| 国产毛片久久久| 精品免费视频| 日韩另类视频| 亚洲精品a级片| 亚洲精品日韩久久| 国产精品久久久久久久久久久久久久久 | 免费精品视频最新在线| 亚洲三级网站| 国产伦理一区| 中文字幕高清在线播放| 久久精品观看| 石原莉奈在线亚洲二区| 日本少妇一区二区| 国产成人精品一区二区三区免费| 欧美日韩视频免费观看| 亚洲免费精品| 久久狠狠亚洲综合| 国产成人在线中文字幕| 婷婷亚洲综合| **爰片久久毛片| 日韩在线观看一区| 日韩中文字幕亚洲一区二区va在线 | 亚洲一区网站| 国产日韩在线观看视频| 98精品视频| 久热综合在线亚洲精品| 国产精品xvideos88| 久久久蜜桃一区二区人| 中文无码久久精品| 久久中文字幕一区二区三区| 一区二区三区四区在线看| 亚洲欧美日本日韩| 国产精品嫩草影院在线看| 久久久久国产精品一区三寸| 中文视频一区| 久久精品免视看国产成人| 99视频+国产日韩欧美| 日韩不卡一区二区| 国产一区一一区高清不卡| 亚洲激精日韩激精欧美精品| 欧美日韩亚洲三区| 91精品啪在线观看国产18| 日本亚洲欧美天堂免费| 另类专区亚洲| 蜜桃视频免费观看一区| 国产极品嫩模在线观看91精品| 99视频精品全部免费在线视频| 日韩一区精品| 桃色av一区二区| 久久亚洲美女| 福利视频一区| 亚洲一区二区日韩| 美腿丝袜亚洲三区| 噜噜噜久久亚洲精品国产品小说| 麻豆精品蜜桃视频网站| 视频一区二区中文字幕| 成人福利视频| 日本中文字幕不卡| 久久一区二区中文字幕| 国产精品videossex久久发布 | 日韩专区在线视频| 精品国产午夜| 日韩在线视频一区二区三区| 91精品蜜臀一区二区三区在线|