日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中的String数据类型归纳

發布時間:2025/7/14 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的String数据类型归纳 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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類的保存到一個全局String表中,如果具有相同值的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”常量,所以常量池中一開始是沒有”kvill”的,當我們調用s1.intern()后就在常量池中新添加了一個”kvill”常量,原來的不在常量池中的”kvill”仍然存在,也就不是“將自己的地址注冊到常量池中”了。

  s1==s1.intern()為false說明原來的“kvill”仍然存在;s2現在為常量池中“kvill”的地址,所以有s2==s1.intern()為true。

  5. 關于equals()和==:

  這個對于String簡單來說就是比較兩字符串的Unicode序列是否相當,如果相等返回true;而==是比較兩字符串的地址是否相同,也就是是否是同一個字符串的引用。

  6. 關于String是不可變的

  這一說又要說很多,大家只要知道String的實例一旦生成就不會再改變了,比如說:String str=”kv”+”ill”+” “+”ans”;

  就是有4個字符串常量,首先”kv”和”ill”生成了”kvill”存在內存中,然后”kvill”又和” “ 生成 ”kvill “存在內存中,最后又和生成了”kvill ans”;并把這個字符串的地址賦給了str,就是因為String的“不可變”產生了很多臨時變量,這也就是為什么建議用StringBuffer的原因了,因為StringBuffer是可改變的。

總結

以上是生活随笔為你收集整理的Java中的String数据类型归纳的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久久久久网站 | 欧美性爱视频久久 | 亚洲精品成人网 | 日本免费一区二区三区 | a级无遮挡超级高清-在线观看 | 日本打屁股网站 | 天天想你免费观看完整版高清电影 | 第一章豪妇荡乳黄淑珍 | 在线观看一区二区三区视频 | 可以免费看黄的网站 | 日韩在线中文字幕 | 日韩成人高清视频在线观看 | 五月天色站| 久久金品 | 91视频在线视频 | 婷婷tv| 丰满人妻一区二区 | 亚洲最大福利 | 亚洲无人区码一码二码三码 | 欧美日韩在线二区 | 潘金莲一级淫片aaaaaa播放 | 精品熟妇视频一区二区三区 | 少妇无码一区二区三区免费 | 色偷偷av男人的天堂 | 超碰123 | 亚欧激情 | 久久久夜夜夜 | 爱情岛论坛永久入址测速 | 国产国产精品 | 丰满岳乱妇一区二区三区 | 黑丝美女啪啪 | 欧美熟妇精品久久久久久 | 加勒比波多野结衣 | www黄色| 欧美区亚洲区 | 夜夜嗨av一区二区三区免费区 | 日韩 国产 欧美 | 欧美极品jizzhd欧美 | 国产77777 | 99在线视频播放 | 丰满人妻一区二区三区53 | 九色精品| 成人黄色一级片 | 国产调教一区 | 性生交生活影碟片 | 国内精品视频一区二区三区 | 在线看黄的网站 | 日韩欧美在线观看 | 九九视频在线观看 | 国产日韩在线观看一区 | 亚洲图区欧美 | 成人91av | 小视频在线观看 | 精品女同一区二区 | 国产精品伦理 | 91资源在线观看 | 久久精品久久久久 | 懂色av蜜臂av粉嫩av | 最新av导航 | 中文字幕日本人妻久久久免费 | 天堂色网 | 麻豆亚洲av成人无码久久精品 | 一区在线免费 | 强伦人妻一区二区三区 | 国产精品久久久久久久久久久新郎 | 中文字幕亚洲图片 | 麻豆国产精品777777在线 | av毛片在线| 日日干日日爽 | 美女赤身免费网站 | 宅男av | 91九色偷拍 | 韩国久久精品 | 欧美日韩一级在线观看 | 国产91色在线 | 亚洲天堂一区二区三区 | 精品在线一区二区三区 | 性欢交69国产精品 | 日日夜夜精品免费 | 欧美乱码精品一区二区三区 | 日韩高清一级 | 中文字字幕第183页 欧美特级一级片 | 欧美成人精品一区二区男人小说 | 久久久久女人精品毛片九一 | 人人爽人人爽人人爽人人爽 | 最好看的2019年中文视频 | 日韩欧美中文字幕在线播放 | 国产精品久久久久久久免费看 | 中文字幕亚洲不卡 | 日少妇的逼 | 一女三黑人理论片在线 | 精品xxxx| 99久久免费看精品国产一区 | 玖玖色资源 | 我的丝袜美腿尤物麻麻 | 国产91在线播放九色 | 国产女主播一区二区三区 | 动漫同人高h啪啪爽文 | 后进极品美女圆润翘臀 |