2019-04-26 java.lang.String

java字符串對(duì)象String

實(shí)現(xiàn)可序列化(java.io.Serializable),可比較(Comparable<String>)就乓,字符序列(CharSequence)。

基本屬性

//char[] 作為底層存儲(chǔ)
private final char value[]
//有私有的創(chuàng)建時(shí)生成的hash屬性噩翠,
private int hash;
//包含一個(gè)私有對(duì)象流字段數(shù)組ObjectStreamField[] serialPersistentFields守伸,稍后在做研究
private static final ObjectStreamField[] serialPersistentFields =
        new ObjectStreamField[0];

一些基本的構(gòu)造函數(shù)

這里不一一貼出了,大致包含了见芹,無參(空字符串)蠢涝,char[],char[]高階徘铝,byte[],byte[]高階怕午,int[]高階以及 byte[]&Charset,byte[] & String(charset string)淹魄,StringBuffer,StringBuilder等

//比較常用的聲明方式包括 

//從常量池構(gòu)建
String s = "abc";

//堆構(gòu)建
String s = new String("abc");
char[] sc = {'a','b','c'};
String s = new String(sc);
String bs = new String("你好".getBytes(),"utf-8");

基本方法

一些比較好理解的(可以通過方法名稱字面意思理解的)

charAt,codePointAt,codePointBefore,codePointCount,compareTo,compareToIgnoreCase(不區(qū)分大小寫),concat(拼接到尾部),contains,contentEquals,contentEquals(CharSequence cs),contentEquals(StringBuffer sb)兆蕉,static copyValueOf(從char[]或者char[]指定區(qū)域構(gòu)建)缤沦,endsWith,equals(值比較)缸废,equalsIgnoreCase(不區(qū)分大小寫值比較),static format(通過某種表達(dá)式和參數(shù)構(gòu)建)养晋,getBytes(普通和高階用法)梁钾,getChars,hashCode(返回私有屬性hash值)零酪,indexOf拇勃,intern(返回字符串對(duì)象的規(guī)范表示),isEmpty月腋,static join(由 CharSequence elements的副本組成,并附有指定的delimiter的 delimiter )榆骚,lastIndexOf煌集,length,matches碉钠,offsetByCodePoints(返回此 String內(nèi)的指數(shù),與 index codePointOffset代碼點(diǎn))喊废,regionMatches,replace褂策,replaceAll,replaceFirst,split(切分)耿焊,startsWith,subSequence器腋,substring钩杰,toCharArray,toLowerCase(轉(zhuǎn)換為消協(xié))措左,toUpperCase(轉(zhuǎn)換為大寫)避除,trim和一系列的valueOf方法。

知識(shí)

聲明/創(chuàng)建方式

//String特殊創(chuàng)建方式以及構(gòu)造函數(shù)創(chuàng)建方式的區(qū)別  
/**
在使用特殊創(chuàng)建方式(String s = "";)方式創(chuàng)建字符串對(duì)象時(shí)凉逛,  
虛擬機(jī)會(huì)先去檢查常量池(什么是常量池可以在jvm相關(guān)知識(shí)中找到)中是否存在相同值的對(duì)象,  
如果不存在就在常量池中創(chuàng)建一個(gè)状飞,如果存在直接返回該對(duì)象书斜,  
而使用構(gòu)造函數(shù)創(chuàng)建時(shí),是在堆內(nèi)存中創(chuàng)建String對(duì)象自晰,  
這樣就導(dǎo)致了不同形式創(chuàng)建的同樣的值的String對(duì)象的地址比較的差異性  
*/
        String str="helloworld";
        String str1="helloworld";
        String str2=new String("helloworld");
        String str3=new String("helloworld");
        System.out.println(":"+(str==str1));
        System.out.println(":"+(str1==str2));
        System.out.println(":"+(str2==str3));
        System.out.println(":"+str.equals(str3));

輸出結(jié)果如下:
true
false
false
true

使用char[]構(gòu)造

當(dāng)使用char[]構(gòu)造String對(duì)象時(shí)稍坯,方法的實(shí)現(xiàn)是直接使用Arrays,copyOf方法直接給屬性value賦值

使用byte[]構(gòu)建

借助StringCoding類給屬性value賦值

startsWith & endsWith

startsWith遍歷char[]一一比較
endsWith同時(shí)使用startsWith完成的

PS String就寫到這里吧 每天一個(gè)java類太花費(fèi)時(shí)間了,以后改成每天一個(gè)知識(shí)點(diǎn)了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末混巧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子秘蛔,更是在濱河造成了極大的恐慌傍衡,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倦畅,死亡現(xiàn)場離奇詭異绣的,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)芭概,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門惩嘉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奏路,你說我怎么就攤上這事「敕郏” “怎么了抓艳?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵玷或,是天一觀的道長。 經(jīng)常有香客問我偏友,道長位他,這世上最難降的妖魔是什么产场? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任京景,我火速辦了婚禮骗奖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘执桌。我一直安慰自己,他們只是感情好育苟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著博烂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪禽篱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天玛界,我揣著相機(jī)與錄音悼吱,去河邊找鬼。 笑死后添,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的馅精。 我是一名探鬼主播粱檀,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼压彭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哮塞,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎衡未,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缓醋,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡送粱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年掂之,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片世舰。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖跟压,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情震蒋,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布钾虐,位于F島的核電站笋庄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏无切。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一掘托、第九天 我趴在偏房一處隱蔽的房頂上張望籍嘹。 院中可真熱鬧弯院,春花似錦泪掀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鼠证。三九已至,卻和暖如春量九,著一層夾襖步出監(jiān)牢的瞬間颂碧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國打工弯予, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓受楼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親猴贰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • java中String的常用方法 1米绕、length()字符串的長度 例:char chars[]={'a','b'...
    赤赤有名閱讀 2,038評(píng)論 0 10
  • 在編寫程序的過程中栅干,不了避免的要用到字符串捐祠,所以String類的常用方法的用法是必須掌握的。學(xué)習(xí)一個(gè)類的使用方法最...
    Geg_Wuz閱讀 1,250評(píng)論 0 4
  • 一窿给、簡介Object類 1贵白、Object類是所有類的父類,即每個(gè)類都直接或簡介繼承自該類禁荒。所以一個(gè)Object...
    lipingLi_2019閱讀 1,141評(píng)論 0 0
  • 字符串(String)是一系列的字符(char)角撞。例如“Hello”是5個(gè)字符。字符串是一個(gè)不可變的對(duì)象靴寂,也就是說...
    chonglingliu閱讀 1,086評(píng)論 0 0
  • 上世紀(jì)5~60年代,諾木洪農(nóng)場也和全國當(dāng)時(shí)的形勢一樣褐隆,響應(yīng)黨中央的號(hào)召,大辦農(nóng)業(yè)“以糧為綱"庶弃。為了多打糧,...
    諾蘭齊閱讀 862評(píng)論 1 2