Java String類用法詳解
零碎知識(shí)點(diǎn)
extends Object implements serializable,Comparable< String >,charSequence String類表示字符串,所有字符串文字都是此類的對象 字符串是不變的,值在創(chuàng)建后無法更改 對象一旦聲明則不可改變,改變的只是地址,原來的字符串還是存在的,并且產(chǎn)生垃圾 任何一個(gè)“”都為字符串對象,無賦值則為匿名對象 用“+”拼接字符串盡量避免,一般用append+toString StringBuilder(線程不安全)和StringBuffer(線程安全),忽略線程安全,其它都一樣由于String對象是不可變的,所以可以共享(即兩個(gè)字符串一樣則共享同一塊內(nèi)存地址)
//共享String t1 = '123';String t2 = '123';System.out.ptintln(t1 == t2);//true,(== 比較的是內(nèi)存地址)字符串常量池
存在于方法區(qū)(加載代碼的內(nèi)存區(qū)),被所有的線程共享
堆在邏輯上的劃分堆在邏輯上被分為三部分:新生代:存儲(chǔ)剛創(chuàng)建的對象(GC詢問次數(shù)最多為15次,>15則進(jìn)入老年代)老年代:垃圾回收次數(shù)超過15次(即15次之后依然存活的對象)永久代:靜態(tài)修飾的所有東西(類、方法、常量…)
每一個(gè)字符串對象的創(chuàng)建都會(huì)放入永久代(每次創(chuàng)建都先去永久代,前提:不用new,new開辟新內(nèi)存)
二、創(chuàng)建對象2.1 直接引用常量區(qū)String s = ' ';
String str = “abc” ;2.2 使用構(gòu)造方法
String()
String str = new String(“abc”); 2.3 兩種實(shí)例化方法的區(qū)別
區(qū)別
直接賦值:
只開辟一塊堆內(nèi)存空間,并且會(huì)自動(dòng)入池,不會(huì)產(chǎn)生垃圾 會(huì)將匿名對象“”放入對象池,下一次不同對象直接賦值時(shí)直接利用池中已經(jīng)存在的匿名對象構(gòu)造方法:
在堆內(nèi)存創(chuàng)建對象 會(huì)開辟兩塊堆內(nèi)存空間,其中一塊堆內(nèi)存會(huì)變成垃圾被系統(tǒng)回收,而且不能夠自動(dòng)入池,需要通過public String intern();方法進(jìn)行手工入池。三、常用方法Modifier and Type Method Description char charAt(int index) 返回指定索引處的 char值。 int compareTo(String anotherString) 按字典順序比較兩個(gè)字符串。 boolean endsWith(String suffix) 測試此字符串是否以指定的后綴結(jié)尾。 boolean equals(Object anObject) 將此字符串與指定的對象進(jìn)行比較。 boolean equalsIgnoreCase(String anotherString) 將此 String與另一個(gè) String比較,忽略了大小寫。 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 將此字符串中的字符復(fù)制到目標(biāo)字符數(shù)組中。 int indexOf(int ch) 返回指定字符第一次出現(xiàn)的字符串中的索引。 int indexOf(int ch, int fromIndex) 返回指定字符第一次出現(xiàn)的此字符串中的索引,從指定索引處開始搜索。 int indexOf(String str) 返回指定子字符串第一次出現(xiàn)的字符串中的索引。 int indexOf(String str, int fromIndex) 從指定的索引處開始,返回指定子字符串第一次出現(xiàn)的字符串中的索引。 boolean isEmpty() 返回 true ,當(dāng)且僅當(dāng), length()是 0 。 int lastIndexOf(int ch) 返回指定字符最后一次出現(xiàn)的字符串中的索引。 int lastIndexOf(int ch, int fromIndex) 返回指定字符最后一次出現(xiàn)的字符串中的索引,從指定的索引開始向后搜索。 int lastIndexOf(String str) 返回指定子字符串最后一次出現(xiàn)的字符串中的索引。 int lastIndexOf(String str, int fromIndex) 返回指定子字符串最后一次出現(xiàn)的字符串中的索引,從指定索引開始向后搜索。 int length() 返回此字符串的長度。 String repeat(int count) 返回一個(gè)字符串,其值為此字符串的串聯(lián)重復(fù) count次。 String replace(CharSequence target, CharSequence replacement) 將此字符串中與文字目標(biāo)序列匹配的每個(gè)子字符串替換為指定的文字替換序列。 String replaceAll(String regex, String replacement) 將給定替換的給定 regular expression匹配的此字符串的每個(gè)子字符串替換。 String replaceFirst(String regex, String replacement) 將給定替換的給定 regular expression匹配的此字符串的第一個(gè)子字符串替換。 boolean startsWith(String prefix) 測試此字符串是否以指定的前綴開頭。 boolean startsWith(String prefix, int toffset) 測試從指定索引開始的此字符串的子字符串是否以指定的前綴開頭。 String stripLeading() 返回一個(gè)字符串,其值為此字符串,并刪除了所有前導(dǎo) white space 。 String stripTrailing() 返回一個(gè)字符串,其值為此字符串,并刪除所有尾隨 white space 。 CharSequence subSequence(int beginIndex, int endIndex) 返回作為此序列的子序列的字符序列。 String substring(int beginIndex) 返回一個(gè)字符串,該字符串是此字符串的子字符串。 String substring(int beginIndex, int endIndex) 返回一個(gè)字符串,該字符串是此字符串的子字符串。 char[] toCharArray() 將此字符串轉(zhuǎn)換為新的字符數(shù)組。 String toLowerCase() 使用默認(rèn)語言環(huán)境的規(guī)則將此 String所有字符轉(zhuǎn)換為小寫。 String toUpperCase() 使用默認(rèn)語言環(huán)境的規(guī)則將此 String所有字符轉(zhuǎn)換為大寫。 String toUpperCase(Locale locale) 使用給定 Locale的規(guī)則將此 String所有字符轉(zhuǎn)換為大寫。 static String valueOf(T i) 返回T參數(shù)的字符串表示形式。到此這篇關(guān)于Java String類用法詳解的文章就介紹到這了,更多相關(guān)Java String內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. asp判斷某個(gè)文件是否存在的函數(shù)2. Android table布局開發(fā)實(shí)現(xiàn)簡單計(jì)算器3. 理解PHP5中static和const關(guān)鍵字4. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)5. 在IDEA中實(shí)現(xiàn)同時(shí)運(yùn)行2個(gè)相同的java程序6. Java如何基于反射機(jī)制獲取不同的類7. IntelliJ IDEA安裝插件的方法步驟8. Python random庫使用方法及異常處理方案9. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟10. ASP.NET泛型三之使用協(xié)變和逆變實(shí)現(xiàn)類型轉(zhuǎn)換

網(wǎng)公網(wǎng)安備