九九久久精品一区_国模叶桐国产精品一区_亚洲一品av免费观看_国产精品第10页_97色在线播放视频_性欧美激情精品_欧美高清视频在线观看_午夜精品福利电影_亚洲国产天堂久久国产91_亚洲三级黄色在线观看_亚洲综合最新在线_国产99久久精品一区二区永久免费_久久影视电视剧免费网站_国产亚洲精品日韩_国产精品美女久久久久久免费_北条麻妃一区二区三区中文字幕

Skip to main content
 首頁 » 風土人情

有關JavaString的剖析有什么?

2022年05月24日 14:03:4770

??起因:

String a=Hello World!;

String b=Hello World!;

a=b?

a和b是否相等? 為什么?

String a=new String(Hello World!);

String b=Hello World!;

a=b?

a和b是否相等 ? 為什么?

解釋:

1。
?? 首先String不屬于8種基本數據類型,String是一個對象。

因為對象的默認值是null,所以String的默認值也是null;但它又是一種特殊的對象,有其它對象沒有的一些特性。

2。 new String()和new String(“”)都是申明一個新的空字符串,是空串不是null;

3。
?? String str=kvill;

String str=new String (“kvill”);的區別:

在這里,我們不談堆,也不談棧,只先簡單引入常量池這個簡單的概念。

常量池(constant pool)指的是在編譯期被確定,并被保存在已編譯的。
??class文件中的

一些數據。它包括了關于類、方法、接口等中的常量,也包括字符串常量。

看例1:

String s0=kvill;

String s1=kvill;

String s2=kv + ill;

System。
??out。println( s0==s1 );

System。out。println( s0==s2 );

結果為:

true

true

首先,我們要知道Java會確保一個字符串常量只有一個拷貝。

因為例子中的s0和s1中的”kvill”都是字符串常量,它們在編譯期就被確定了,所以

s0==s1為true;而”kv”和”ill”也都是字符串常量,當一個字符串由多個字符串常量連

接而成時,它自己肯定也是字符串常量,所以s2也同樣在編譯期就被解析為一個字符串常量,所以s2也是常量池中”kvill”的一個引用。
??所以我們得出s0==s1==s2;

用new String() 創建的字符串不是常量,不能在編譯期就確定,所以new String()

創建的字符串不放入常量池中,它們有自己的地址空間。

看例2:

String s0=kvill;

String s1=new String(kvill);

String s2=kv+ new String(ill);

System。
??out。println( s0==s1 );

System。out。println( s0==s2 );

System。out。println( s1==s2 );

結果為:

false

false

false

例2中s0還是常量池中”kvill”的應用,s1因為無法在編譯期確定,所以是運行時創

建的新對象”kvill”的引用,s2因為有后半部分new String(“ill”)所以也無法在編譯

期確定,所以也是一個新創建對象”kvill”的應用;明白了這些也就知道為何得出此結果了。
??

4。 String。intern():

再 補充介紹一點:存在于。class文件中的常量池,在運行期被JVM裝載,并且可以擴充。String的intern()方法就是擴充常量池的一個方法; 當一個String實例str調用intern()方法時,Java查找常量池中是否有相同Unicode的字符串常量,如果有,則返回其的引用,如果沒有,則在常量池中增加一個Unicode等于str的字符串并返回它的引用;看例3就清楚了。
??

例3:

String s0= kvill;

String s1=new String(kvill);

String s2=new String(kvill);

System。out。println( s0==s1 );

System。
??out。println( “**********” );

s1。intern();

s2=s2。intern(); //把常量池中kvill的引用賦給s2

System。out。println( s0==s1);

System。out。
??println( s0==s1。intern() );

System。out。println( s0==s2 );

結果為:

false

**********

false //雖然執行了s1。intern(),但它的返回值沒有賦給s1

true //說明s1。
??intern()返回的是常量池中”kvill”的引用

true

最后我再破除一個錯誤的理解:

有人說,“使用String。intern()方法則可以將一個String類的保存到一個全局Strin

g 表中,如果具有相同值的Unicode字符串已經在這個表中,那么該方法返回表中已有字符串的地址,如果在表中沒有相同值的字符串,則將自己的地址注冊到表中“如果我把他說的這個全局的String表理解為常量池的話,他的最后一句話,“如果在表中沒有相同值的字符串,則將自己的地址注冊到表中”是錯 的:

看例4:

String s1=new String(kvill);

String s2=s1。
??intern();

System。out。println( s1==s1。intern() );

System。out。println( s1+ +s2 );

System。out。println( s2==s1。intern() );

結果:

false

kvill kvill

true

在 這個類中我們沒有聲名一個kvill常量,所以s1。
??intern()同new String(kvill)是不同的,當我們調用s1。intern()后就在常量池中新添加了一個kvill常量,原來的不在常量池中的kvill仍然存在,也就不是“將自己的地址注冊到常量池中”了。

s1==s1。
??intern()為false說明原來的“kvill”仍然存在;

s2現在為常量池中“kvill”的地址,所以有s2==s1。intern()為true。

評論列表暫無評論
發表評論
九九久久精品一区_国模叶桐国产精品一区_亚洲一品av免费观看_国产精品第10页_97色在线播放视频_性欧美激情精品_欧美高清视频在线观看_午夜精品福利电影_亚洲国产天堂久久国产91_亚洲三级黄色在线观看_亚洲综合最新在线_国产99久久精品一区二区永久免费_久久影视电视剧免费网站_国产亚洲精品日韩_国产精品美女久久久久久免费_北条麻妃一区二区三区中文字幕
图片区日韩欧美亚洲| 日本网站在线观看一区二区三区| 日韩av一区二区三区在线观看| 国产亚洲成年网址在线观看| 日韩网站在线观看| 精品国产不卡一区二区三区| 欧洲亚洲一区二区三区| 中文字幕av一区二区三区人| 尤物99国产成人精品视频| 欧美高跟鞋交xxxxxhd| 国产精品扒开腿做爽爽爽的视频| 亚洲电影免费观看高清完整版在线| 成人免费看吃奶视频网站| 国内精品国产成人| 91在线porny国产在线看| 欧美精品www在线观看| 日韩电影免费观看| 懂色一区二区三区免费观看| 5566成人精品视频免费| yw视频在线观看| 久久韩国免费视频| 成人精品一区二区三区电影免费| 欧美在线一二三区| 国产精品美女久久久久av超清| 九九精品在线视频| 2023国产一二三区日本精品2022| 亚洲黄色在线视频| 国产麻豆乱码精品一区二区三区| 国产欧美一区视频| 成人av福利| 久久精品国产精品亚洲精品| 国产精品入口| 极品美女销魂一区二区三区| 午夜欧美一区二区三区免费观看| 天堂а√在线资源在线| 久久久国产精品| 亚洲免费福利一区| 日韩伦理av| 综合136福利视频在线| 成人av中文| 欧美极品第一页| 国产欧美在线观看一区| 国语精品一区| 91超碰caoporn97人人| h视频在线观看免费| 欧美主播福利视频| 日韩av网址大全| 亚洲欧洲国产日韩精品| 天堂av一区二区三区在线播放| 日韩欧美成人精品| 日韩综合小视频| 欧美私人免费视频| 日本韩国欧美国产| 99九九电视剧免费观看| a√资源在线| 色婷婷激情综合| 成人精品国产免费网站| 奇米影视首页 狠狠色丁香婷婷久久综合| 亚洲网站免费| 日韩av资源在线播放| 97免费高清电视剧观看| 精品一区二区三区四区| 日本视频一区二区不卡| 国产精品1区2区3区| 欧美国产97人人爽人人喊| 免费a级人成a大片在线观看| 欧美日韩看看2015永久免费| 一本色道久久综合狠狠躁的推荐| 欧美成人一区二区三区在线观看| 国产一区二区三区久久久| 久久99精品国产.久久久久久| 欧美另类专区| 日韩av理论片| 精品美女在线观看视频在线观看| 在线免费观看亚洲| 欧美a级在线| 精品区一区二区| 欧美绝顶高潮抽搐喷水合集| 综合久久久久综合| 婷婷亚洲久悠悠色悠在线播放| 99久久视频| 欧美一性一交| 国产精品亚发布| 欧美激情视频在线播放| 51vv免费精品视频一区二区| 91豆麻精品91久久久久久| 日本超碰一区二区| 成人免费网站在线看| 欧美精品www在线观看| 国产91丝袜在线播放九色| 国产精品视频自在线| 亚洲综合影院| 日韩欧美在线第一页| 欧美成人一区二免费视频软件| 国产精品1024久久| 视频一区视频二区视频三区视频四区国产| 亚洲香蕉av| 欧美亚洲免费在线一区| 不卡的av在线播放| 一本大道久久a久久综合婷婷| 日韩制服诱惑| 欧美在线视频全部完| 欧美撒尿777hd撒尿| 久久久久久久久久久人体| 外国成人直播| 六九午夜精品视频| 亚洲人成电影在线观看天堂色| 国产精品成人一区二区三区吃奶| 国产传媒欧美日韩成人精品大片| 天天色综合天天| 成码无人av片在线观看网站| 日韩一区二区电影| 精品国产乱码一区二区三区| 中文字幕视频一区二区三区久| 亚洲午夜激情av| 色综合视频一区二区三区日韩| 国产欧美视频一区二区| 亚洲国产精品一区二区第四页av| 国产综合精品一区| 欧美激情1区| 亚洲精品第一国产综合野| 午夜精品成人在线| 久久经典综合| 欧美日韩国产v| 成人av在线网站| 欧美一区午夜视频在线观看| 欧美日韩精品在线| 亚洲成av人影院在线观看网| 国产精品日日摸夜夜摸av| 亚洲欧洲一区二区福利| 精品视频—区二区三区免费| 色婷婷亚洲综合| 成人a级免费视频| 日本一区视频在线观看免费| 欧美天天视频| 日本高清一区| 欧美影视一区在线| 91综合精品国产丝袜长腿久久| 涩爱av色老久久精品偷偷鲁| 色多多国产成人永久免费网站| 欧美xxxx做受欧美护士| 成人看片在线观看| 久久超级碰视频| 色爱区综合激月婷婷| 成人av电影在线网| 久久精品在线免费观看| 国产视频一区二区| 亚洲全部视频| 成人婷婷网色偷偷亚洲男人的天堂| 日本成人在线视频网站| 丁香桃色午夜亚洲一区二区三区| 1区2区3区在线视频| 伊人男人综合视频网| 99精品视频在线免费观看| 国产精品com| аⅴ资源天堂资源库在线| 99re8在线精品视频免费播放| 国内精品久久久久久久97牛牛| 欧美视频自拍偷拍| japanese色国产在线看视频| 韩国在线一区| 奇米一区二区三区av| 国产中文欧美精品| 欧美国产乱视频|