九九久久精品一区_国模叶桐国产精品一区_亚洲一品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久久精品一区二区永久免费_久久影视电视剧免费网站_国产亚洲精品日韩_国产精品美女久久久久久免费_北条麻妃一区二区三区中文字幕
国产在线98福利播放视频| 狠狠躁夜夜躁人人爽超碰91| 国产午夜精品视频| 国产精品综合不卡av| 国产精品自拍偷拍| 中文字幕亚洲一区二区三区五十路| 国产精品白嫩初高中害羞小美女| 国产精品777| 免费99精品国产自在在线| 7m精品福利视频导航| 88国产精品欧美一区二区三区| 欧美性开放视频| 九九热精品在线| 中文字幕国产精品| 日韩激情片免费| 国产精品久久久久久久久久免费| 国产精品丝袜视频| 亚洲大尺度美女在线| 51久久精品夜色国产麻豆| 国产精品1区2区在线观看| 亚洲欧洲偷拍精品| 欧美成人精品一区二区三区| 欧美性视频精品| 国产亚洲精品成人av久久ww| 欧美激情视频一区| 欧美性极品xxxx娇小| 欧美性视频网站| 国产男人精品视频| 国产亚洲精品高潮| 在线观看日韩专区| 992tv成人免费影院| 国产99久久精品一区二区| 精品国产视频在线| 欧洲精品在线视频| 国内精品久久久久久| 欧美理论在线观看| 国产精品高潮在线| 国产精品视频白浆免费视频| 亚洲国产古装精品网站| 日韩美女视频免费在线观看| 亚洲精品久久久久国产| 日韩电影大全免费观看2023年上| 美日韩丰满少妇在线观看| 欧美日韩精品在线观看| 精品亚洲男同gayvideo网站| 久久这里有精品视频| 亚洲欧美日韩国产中文| 精品人伦一区二区三区蜜桃网站| 91精品国产精品| 日韩在线一区二区三区免费视频| 国产精品国产自产拍高清av水多| 亚洲一区二区三区四区视频| 成人激情av在线| 亚洲欧美日韩天堂一区二区| 欧美成人精品三级在线观看| 97高清免费视频| 欧美日韩综合视频| 国产精品偷伦视频免费观看国产| 黑人巨大精品欧美一区二区| 青青草原成人在线视频| 九九久久精品一区| 国产成人在线播放| 成人做爰www免费看视频网站| 欧美视频免费在线| 亚洲欧洲国产伦综合| 日韩欧美成人免费视频| 久久视频这里只有精品| 国产欧美日韩精品专区| 亚洲的天堂在线中文字幕| 伊人久久久久久久久久久| 日韩电影免费观看在线观看| 中文欧美日本在线资源| 国产一区香蕉久久| 国产69久久精品成人看| 国产精品福利观看| 亚洲人成欧美中文字幕| 国产精品电影观看| 亚洲欧美资源在线| 97超碰国产精品女人人人爽| 亚洲人a成www在线影院| 日韩精品视频在线观看网址| 亚洲欧美国产高清va在线播| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产高清视频一区三区| 亚洲国产成人精品电影| 亚洲欧洲国产一区| 精品色蜜蜜精品视频在线观看| 欧美性xxxx极品hd欧美风情| 欧美激情2020午夜免费观看| 91成人在线视频| 欧美一区二区三区艳史| 97精品国产97久久久久久| 久久久黄色av| 成人黄色免费片| 国产一区二区三区日韩欧美| 理论片在线不卡免费观看| 一区二区三区无码高清视频| 国产成人精品久久二区二区91| 亚洲香蕉成人av网站在线观看| 欧美福利视频在线| 亚洲成色999久久网站| 亚洲电影免费观看| 91国产高清在线| 日韩电影第一页| 欧美黑人一区二区三区| 日韩欧美在线网址| 久久99精品久久久久久青青91| 日韩av免费在线看| 亚洲一区二区三区四区在线播放| 国产精品久久久久久久美男| 95av在线视频| 欧美日韩免费看| 欧美情侣性视频| 色综合久久久久久中文网| 91成品人片a无限观看| 成人av在线亚洲| 欧美视频13p| 亚洲美腿欧美激情另类| 久久视频精品在线| 国产香蕉精品视频一区二区三区| 亚洲国产一区二区三区在线观看| 国产激情999| 国产成人精品日本亚洲专区61| 中文字幕精品在线| 日韩中文在线中文网在线观看| 欧美在线观看日本一区| 欧美国产乱视频| 日本一区二区在线免费播放| 91精品在线一区| 欧美自拍视频在线观看| 青青草一区二区| 国产精品入口日韩视频大尺度| 国产美女精品视频| 久久亚洲精品小早川怜子66| 韩日精品中文字幕| 亚洲乱码国产乱码精品精| 一区二区在线免费视频| 日韩免费在线电影| 亚洲精品久久久久中文字幕二区| 欧美性猛交xxxx乱大交蜜桃| 日韩精品在线电影| 日韩欧美在线视频| 5566成人精品视频免费| 亚洲国产精品人久久电影| 97久久超碰福利国产精品…| 亚洲视频第一页| 欧美一级在线亚洲天堂| 亚洲欧美日韩中文在线| 97在线免费观看| 久久久久999| 久久久久亚洲精品| 97国产精品视频人人做人人爱| 国产一区二区久久精品| 亚洲精品国产suv| 欧美最猛性xxxxx(亚洲精品)| 国产有码在线一区二区视频| 国产日韩一区在线| 国产亚洲美女久久| 亚洲精品videossex少妇| 色老头一区二区三区在线观看| 日韩中文字幕精品视频| 国产精品xxx视频| 日本三级久久久| 久久精品国产电影|