400-650-7353
您所在的位置:首頁 > IT干貨資料 > java > 【Java基礎(chǔ)知識(shí)】Java中的字符串是什么

【Java基礎(chǔ)知識(shí)】Java中的字符串是什么

  • 發(fā)布: java培訓(xùn)
  • 來源:Java培訓(xùn)干貨資料
  • 2020-04-08 17:46:45
  • 閱讀()
  • 分享
  • 手機(jī)端入口

字符串顧名思義就是一些字符組合在一起組成的一串?dāng)?shù)據(jù),稱作字符串,在Java中字符串用雙引號(hào)包圍起來,格式為String string = “hello world”; 這里的hello world就是一個(gè)字符串,字符串里面可以包含任何的字符內(nèi)容;

在Java中String是一個(gè)類,所以除了上面直接讓String對(duì)象等于一個(gè)字符串之外,我們可以向普通的類一樣,使用new創(chuàng)建一個(gè)String對(duì)象;

當(dāng)我們使用第一種方法也就是String string = ”hello”;的時(shí)候,程序會(huì)在特定的內(nèi)存中(專門保存字符串的內(nèi)存)查找是否有”hello”這個(gè)字符串,如果沒有則在這個(gè)內(nèi)存區(qū)域創(chuàng)建一個(gè)”hello”字符串,當(dāng)我們?cè)俅蝿?chuàng)建另一個(gè)字符串String string2 = “hello”;的時(shí)候,由于這個(gè)時(shí)候,這個(gè)內(nèi)存區(qū)域已經(jīng)有了”hello”這個(gè)字符串,所以我們string2就直接指向了”hello”這個(gè)地址;這個(gè)時(shí)候我們使用string == string2的時(shí)候,得到的結(jié)果是true;也就是說兩個(gè)指向值是相等的;

當(dāng)我們使用new 的方式創(chuàng)建一個(gè)字符串對(duì)象的時(shí)候,我們查看String源碼,可以發(fā)現(xiàn)String類中是使用private final char value[];的變量來存放字符串的內(nèi)容;當(dāng)我們創(chuàng)建兩個(gè)字符串String string2 = new String(“hello”); String string3 = new String(“hello”);這個(gè)時(shí)候,我們使用string2 == string3的時(shí)候,得到的結(jié)果是false;這是由于new創(chuàng)建的對(duì)象會(huì)分別在內(nèi)存中創(chuàng)建兩個(gè)地址,所以string2和string3不相等;但是我們使用string2.value == string3.value的時(shí)候,得到的結(jié)果是true;因?yàn)檫@兩個(gè)地址的字符串在內(nèi)存中是指向的同一個(gè)地址的”hello”,并且和我們剛才創(chuàng)建的string所指向的”hello”地址一樣;所以我們一般比較字符串的時(shí)候,使用string2.equal(string3);的方式進(jìn)行比較;

我們可以從下圖中看出來,雖然有四個(gè)String對(duì)象,但是他們的value值的地址都是一樣的;

【Java基礎(chǔ)知識(shí)】Java字符串

Java中String類的構(gòu)造方法非常的多,我們根據(jù)需求,將不同類型的數(shù)組轉(zhuǎn)換成我們想要的字符串;并且String中有我們用的比較多的一些方法,比如public boolean equalsIgnoreCase( String anotherString )表示忽略兩個(gè)字符串中字符的大小寫,比較兩個(gè)字符串是否相等;public boolean startsWith(String prefix, int toffset)表示從字符串第toffset的位置是否是由prefix開始的;public boolean endsWith(String suffix)判斷字符串是否是以suffix結(jié)束的,我們可以從源碼中看到,這個(gè)方法使用了startsWith(suffix, value.length - suffix.value.length)的方法;public String substring(int beginIndex)表示截取字符串從beginIndex開始以后的內(nèi)容;public String substring(int beginIndex, int endIndex)表示截取字符串從beginIndex到endIndex位置的內(nèi)容;

Java對(duì)字符串的封裝非常的強(qiáng)大,除了上述的常用方法之外,還有很多非常方便的方法;能夠熟練掌握String對(duì)我們的開發(fā)有非常大的幫助;

 

文章“【Java基礎(chǔ)知識(shí)】Java中的字符串是什么”已幫助

>>本文地址:http://liujunjsxg.cn/zhuanye/2020/48597.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷互聯(lián)網(wǎng)營(yíng)銷
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁設(shè)計(jì)網(wǎng)頁設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時(shí)間TIME