黑马程序员全套Java教程_Java基础教程_API(十四)
生活随笔
收集整理的這篇文章主要介紹了
黑马程序员全套Java教程_Java基础教程_API(十四)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
黑馬程序員全套Java教程_Java基礎(chǔ)教程_API(十四)
- 1、API
- 1.1 API概述
- 1.2 如何使用幫助文檔
- 2、String
- 2.1 String概述
- 2.2 String構(gòu)造方法
- 2.3 String對象在內(nèi)存中的特點(diǎn)
- 面試題:下列Java代碼中的變量a、b、c分別在內(nèi)存的()存儲區(qū)存放
- 2.4 字符串的比較
- 2.5 通過幫助文檔查看String中的方法
- 面試題:統(tǒng)計(jì)字符次數(shù)
- 面試題:數(shù)組沒有l(wèi)ength()方法?String沒有l(wèi)ength()方法?
- 3、StringBuilder
- 3.1 StringBulider概述
- 3.2 StringBuilder構(gòu)造方法
- 3.3 StringBuilder的添加和反轉(zhuǎn)方法
- 3.4 StringBuilder和String互相轉(zhuǎn)換
- 案例:拼接字符串
- 案例:字符串反轉(zhuǎn)
- 3.5 通過幫助文檔查看StringBuilder中的方法
1、API
1.1 API概述
- API(Application Programming Interface):應(yīng)用程序編程接口。
- 比如說,編寫一個機(jī)器人程序去控制機(jī)器人踢足球,程序需要向機(jī)器人發(fā)出向前跑、向后跑、射門、搶球等各種命令。機(jī)器人廠商一定會提供一些用于控制機(jī)器人的接口類,這些類中定義好了操作機(jī)器人各種動作的方法。其實(shí),這些接口類就是機(jī)器人廠商給應(yīng)用程序編程的接口,大家把這些類稱為API。
- Java API:指的就是JDK中提供的各種功能的Java類。這些類將底層的實(shí)現(xiàn)封裝了起來,我們不需要關(guān)心這些類是如何實(shí)現(xiàn)的,只需要學(xué)習(xí)這些類如何使用,我們可以通過幫助文檔來學(xué)習(xí)這些API如何使用。
1.2 如何使用幫助文檔
- 1、在索引的搜索框內(nèi)輸入想要查找的類。
- 2、看類在哪個包下。
- 3、看類的描述。
- 4、看構(gòu)造方法
- 5、看成員方法。
2、String
2.1 String概述
- String類在java.lang包下,所以使用的時候不需要導(dǎo)包。
- String類代表字符串Java程序中的所有字符串文字(例如“abc”)都被實(shí)現(xiàn)為此類的實(shí)例,也就是說,Java程序中所有的雙引號字符串,都是String類的對象。
- 字符串的特點(diǎn):
(1)字符串不可變,它們的值在創(chuàng)建后不能被修改。
(2)雖然Sting的值是不可變的,但是它們可以被共享。
(3)字符串效果上相當(dāng)于字符數(shù)組(char[])(JDK8以前是字符數(shù)組,JDK9以后是字節(jié)數(shù)組),但是底層原理是字節(jié)數(shù)組(byte[])。
2.2 String構(gòu)造方法
| public String() | 創(chuàng)建一個空白字符串對象,不含有任何內(nèi)容 |
| public String(char[] chs) | 根據(jù)字符數(shù)組的內(nèi)容,創(chuàng)建字符串對象 |
| public String(byte[] bys) | 根據(jù)字節(jié)數(shù)組的內(nèi)容,來創(chuàng)建字符串對象 |
| String s = “abc”; | 直接賦值的方式創(chuàng)建字符串對象,內(nèi)容就是abc |
推薦使用直接賦值的方式構(gòu)建字符串對象
2.3 String對象在內(nèi)存中的特點(diǎn)
- 1、通過new創(chuàng)建的字符串對象,每一次new都會申請一個內(nèi)存空間,雖然內(nèi)容相同,但是地址值不同。
上面代碼中,JVM會先創(chuàng)建一個字符數(shù)組,然后每一次new的時候都會有一個新的地址,只不過s1和s2參考的字符串內(nèi)容是相同的。
- 2、以""方式給出的字符串,只要字符串序列相同(順序和大小寫),無論在程序代碼中出現(xiàn)幾次,JVM都只會建立一個String對象,并在字符串池中維護(hù)。
在上面代碼中,針對第一行代碼,JVM會建立一個String對象放在字符串池中,并給s3參考。第二行則讓s4直接參考字符串池中的String對象,也就是說它們本質(zhì)上是同一個對象。
- 在內(nèi)存中的變化:
面試題:下列Java代碼中的變量a、b、c分別在內(nèi)存的()存儲區(qū)存放
- 堆區(qū),棧區(qū),棧區(qū)。首先要知道棧內(nèi)存和堆內(nèi)存,棧內(nèi)存存儲局部變量(局部變量是定義在方法中的變量,使用完畢,立即消失);而堆內(nèi)存存儲new出來的對象,對象初始化時,會為存儲空間添加默認(rèn)值,每一個new出來的東西都有一個地址值,使用完畢,會在垃圾回收器空閑時被回收(參照筆記十——方法)。a是類中的成員變量,存放在堆區(qū);b、c都是方法中的局部變量,存放在棧區(qū)。
2.4 字符串的比較
- 使用“==”做比較:
(1)基本類型:比較的是數(shù)據(jù)值是否相同。
(2)引用類型:比較的是地址值是否相同。 - 字符串是對象,它比較內(nèi)容是否相同,是通過==equals()==方法來實(shí)現(xiàn)的:這個方法的聲明為public boolean equals(Object anObject),將字符串與指定對象進(jìn)行比較。由于我們比較的是字符串對象,所以參數(shù)直接傳遞一個字符串。
2.5 通過幫助文檔查看String中的方法
| public boolean equals(Object anObject) | 比較字符串的內(nèi)容,嚴(yán)格區(qū)分大小寫(用戶名和密碼) |
| public char charAt(int index) | 返回值指定索引 |
| public int length() | 返回字符串長度 |
面試題:統(tǒng)計(jì)字符次數(shù)
- 鍵盤錄入一個字符串,統(tǒng)計(jì)該字符串中大寫字母字符、小寫字母字符、數(shù)字字符出現(xiàn)的次數(shù)(不考慮其他字符)。
面試題:數(shù)組沒有l(wèi)ength()方法?String沒有l(wèi)ength()方法?
- 數(shù)組沒有l(wèi)ength方法,有l(wèi)ength的屬性,String有l(wèi)ength()方法。JavaScript中,獲取字符串長度是通過length屬性得到的,這一點(diǎn)容易和Java混淆。
3、StringBuilder
3.1 StringBulider概述
如上圖,如果對字符串進(jìn)行拼接操作,每次拼接,都會構(gòu)建一個新的String對象,既耗時,又浪費(fèi)內(nèi)存空間,而這種操作還不可避免。那么有沒有一種比較好的方式可以解決這個問題?答案是肯定的,我們可以通過Java提供的StringBuilder類來解決這個問題。
- StringBuilder是一個可變的字符串類,我們可以把它看成是一個容器。這里的可變指的是StringBuilder對象中內(nèi)容是可變的。
- String和StringBuilder的區(qū)別:String內(nèi)容是不可變的,StringBuilder內(nèi)容是可變的。
3.2 StringBuilder構(gòu)造方法
| public StringBulider() | 創(chuàng)建一個空白可變字符串對象,不含有任何內(nèi)容 |
| public StringBulider(str) | 根據(jù)字符串的內(nèi)容,來創(chuàng)建可變字符串對象 |
3.3 StringBuilder的添加和反轉(zhuǎn)方法
| public StringBuilder append(任意類型) | 添加數(shù)據(jù),并返回對象本身 |
| public StringBuilder reverse() | 返回相反的字符序列 |
3.4 StringBuilder和String互相轉(zhuǎn)換
- 1、StringBuilder轉(zhuǎn)換為String
public String toString():通過toString()就可以實(shí)現(xiàn)把StringBuilder轉(zhuǎn)換為String。 - 2、String轉(zhuǎn)換為StringBuilder
public StringBuilder(String s):通過構(gòu)造方法就可以實(shí)現(xiàn)把String轉(zhuǎn)換為StringBuilder。
案例:拼接字符串
- 需求:定義一個方法,把int數(shù)組中的數(shù)據(jù)按照指定的格式拼接成字符串返回,調(diào)用該方法,并在控制臺輸出結(jié)果。例如,數(shù)組int[] arr = {1,2,3},執(zhí)行方法后的輸出結(jié)果為:[1,2,3]
案例:字符串反轉(zhuǎn)
- 案例:定義一個方法,實(shí)現(xiàn)字符串反轉(zhuǎn)。鍵盤錄入一個字符串,調(diào)用該方法后,在控制臺輸出結(jié)果。例如,鍵盤錄入abc,輸出結(jié)果cba。
3.5 通過幫助文檔查看StringBuilder中的方法
| public StringBuilder append(任意類型) | 添加數(shù)據(jù),并返回對象本身 |
| public StringBuilder reverse() | 返回相反的字符序列 |
| public String toString() | 通過toString()就可以實(shí)現(xiàn)把StringBuilder轉(zhuǎn)換為String |
總結(jié)
以上是生活随笔為你收集整理的黑马程序员全套Java教程_Java基础教程_API(十四)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 粮草先行——Android折叠屏开发技术
- 下一篇: 获取访客进站关键词_拼多多访客突然下降是