本篇內容介紹了“Java核心類庫String的簡單介紹及常用方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一、 簡介
零碎知識點
字符串常量池
堆在邏輯上的劃分
二、 創建對象
2.1.1 直接引用常量區
2.1.2 使用構造方法
2.1.3 兩種實例化方法的區別
三、常用方法
extends Object
implements serializable,Comparable< String >,charSequence
String類表示字符串,所有字符串文字都是此類的對象
字符串是不變的,值在創建后無法更改
對象一旦聲明則不可改變,改變的只是地址,原來的字符串還是存在的,并且產生垃圾
任何一個“”都為字符串對象,無賦值則為匿名對象
用“+”拼接字符串盡量避免,一般用append+toString
StringBuilder(線程不安全)和StringBuffer(線程安全),忽略線程安全,其它都一樣
由于String對象是不可變的,所以可以共享(即兩個字符串一樣則共享同一塊內存地址)
//共享 String t1 = "123"; String t2 = "123"; System.out.ptintln(t1 == t2);//true,(== 比較的是內存地址)
存在于方法區(加載代碼的內存區),被所有的線程共享
堆在邏輯上被分為三部分:
新生代:存儲剛創建的對象(GC詢問次數最多為15次,>15則進入老年代)
老年代:垃圾回收次數超過15次(即15次之后依然存活的對象)
永久代:靜態修飾的所有東西(類、方法、常量…)
每一個字符串對象的創建都會放入永久代(每次創建都先去永久代,前提:不用new,new開辟新內存)
String s = " ";
String str = “abc” ;
String()
String str = new String(“abc”);
區別
直接賦值:
只開辟一塊堆內存空間,并且會自動入池,不會產生垃圾會將匿名對象“”放入對象池,下一次不同對象直接賦值時直接利用池中已經存在的匿名對象
構造方法:
在堆內存創建對象會開辟兩塊堆內存空間,其中一塊堆內存會變成垃圾被系統回收,而且不能夠自動入池,需要通過public String intern();方法進行手工入池。
| Modifier and Type | Method | Description |
|---|---|---|
| char | charAt(int index) | 返回指定索引處的 char值。 |
| int | compareTo(String anotherString) | 按字典順序比較兩個字符串。 |
| boolean | endsWith(String suffix) | 測試此字符串是否以指定的后綴結尾。 |
| boolean | equals(Object anObject) | 將此字符串與指定的對象進行比較。 |
| boolean | equalsIgnoreCase(String anotherString) | 將此 String與另一個 String比較,忽略了大小寫。 |
| void | getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) | 將此字符串中的字符復制到目標字符數組中。 |
| int | indexOf(int ch) | 返回指定字符第一次出現的字符串中的索引。 |
| int | indexOf(int ch, int fromIndex) | 返回指定字符第一次出現的此字符串中的索引,從指定索引處開始搜索。 |
| int | indexOf(String str) | 返回指定子字符串第一次出現的字符串中的索引。 |
| int | indexOf(String str, int fromIndex) | 從指定的索引處開始,返回指定子字符串第一次出現的字符串中的索引。 |
| boolean | isEmpty() | 返回 true ,當且僅當, length()是 0 。 |
| int | lastIndexOf(int ch) | 返回指定字符最后一次出現的字符串中的索引。 |
| int | lastIndexOf(int ch, int fromIndex) | 返回指定字符最后一次出現的字符串中的索引,從指定的索引開始向后搜索。 |
| int | lastIndexOf(String str) | 返回指定子字符串最后一次出現的字符串中的索引。 |
| int | lastIndexOf(String str, int fromIndex) | 返回指定子字符串最后一次出現的字符串中的索引,從指定索引開始向后搜索。 |
| int | length() | 返回此字符串的長度。 |
| String | repeat(int count) | 返回一個字符串,其值為此字符串的串聯重復 count次。 |
| String | replace(CharSequence target, CharSequence replacement) | 將此字符串中與文字目標序列匹配的每個子字符串替換為指定的文字替換序列。 |
| String | replaceAll(String regex, String replacement) | 將給定替換的給定 regular expression匹配的此字符串的每個子字符串替換。 |
| String | replaceFirst(String regex, String replacement) | 將給定替換的給定 regular expression匹配的此字符串的第一個子字符串替換。 |
| boolean | startsWith(String prefix) | 測試此字符串是否以指定的前綴開頭。 |
| boolean | startsWith(String prefix, int toffset) | 測試從指定索引開始的此字符串的子字符串是否以指定的前綴開頭。 |
| String | stripLeading() | 返回一個字符串,其值為此字符串,并刪除了所有前導 white space 。 |
| String | stripTrailing() | 返回一個字符串,其值為此字符串,并刪除所有尾隨 white space 。 |
| CharSequence | subSequence(int beginIndex, int endIndex) | 返回作為此序列的子序列的字符序列。 |
| String | substring(int beginIndex) | 返回一個字符串,該字符串是此字符串的子字符串。 |
| String | substring(int beginIndex, int endIndex) | 返回一個字符串,該字符串是此字符串的子字符串。 |
| char[] | toCharArray() | 將此字符串轉換為新的字符數組。 |
| String | toLowerCase() | 使用默認語言環境的規則將此 String所有字符轉換為小寫。 |
| String | toUpperCase() | 使用默認語言環境的規則將此 String所有字符轉換為大寫。 |
| String | toUpperCase(Locale locale) | 使用給定 Locale的規則將此 String所有字符轉換為大寫。 |
| static String | valueOf(T i) | 返回T參數的字符串表示形式。 |
“Java核心類庫String的簡單介紹及常用方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。