一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java String類用法詳解

Java String類用法詳解

2021-09-13 15:59入錯行的北北 Java教程

今天給大家帶來的是關于Java的相關知識,文章圍繞著Java String類用法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下

一、簡介

零碎知識點

  • extends Object
  • implements serializable,Comparable< String >,charSequence
  • String類表示字符串,所有字符串文字都是此類的對象
  • 字符串是不變的,值在創建后無法更改
  • 對象一旦聲明則不可改變,改變的只是地址,原來的字符串還是存在的,并且產生垃圾
  • 任何一個“”都為字符串對象,無賦值則為匿名對象
  • 用“+”拼接字符串盡量避免,一般用append+toString
  • StringBuilder(線程不安全)和StringBuffer(線程安全),忽略線程安全,其它都一樣

由于String對象是不可變的,所以可以共享(即兩個字符串一樣則共享同一塊內存地址)

?
1
2
3
4
//共享
String t1 = "123";
String t2 = "123";
System.out.ptintln(t1 == t2);//true,(== 比較的是內存地址)

字符串常量池

存在于方法區(加載代碼的內存區),被所有的線程共享

堆在邏輯上的劃分

堆在邏輯上被分為三部分:
新生代:存儲剛創建的對象(GC詢問次數最多為15次,>15則進入老年代)
老年代:垃圾回收次數超過15次(即15次之后依然存活的對象)
永久代:靜態修飾的所有東西(類、方法、常量…)

每一個字符串對象的創建都會放入永久代(每次創建都先去永久代,前提:不用new,new開辟新內存)

二、創建對象

2.1 直接引用常量區

String s = " ";

?
1
String str = “abc” ;

2.2 使用構造方法

String()

?
1
String str = new String(“abc”);

2.3 兩種實例化方法的區別

區別

直接賦值:

  • 只開辟一塊堆內存空間,并且會自動入池,不會產生垃圾
  • 會將匿名對象“”放入對象池,下一次不同對象直接賦值時直接利用池中已經存在的匿名對象

構造方法:

  • 在堆內存創建對象
  • 會開辟兩塊堆內存空間,其中一塊堆內存會變成垃圾被系統回收,而且不能夠自動入池,需要通過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類用法詳解的文章就介紹到這了,更多相關Java String內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/m0_50609545/article/details/117926675

延伸 · 閱讀

精彩推薦
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7472021-02-04
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
主站蜘蛛池模板: 色婷婷影院在线视频免费播放 | uoco福利姬 | 精品国产品国语在线不卡丶 | 2022最新国产在线 | 五月香婷婷 | 办公室强行丝袜秘书啪啪 | 欧洲另类一二三四区 | 久久艹影院 | 天堂久久久久va久久久久 | 亚洲精品成人A8198A片漫画 | 91东航翘臀女神在线播放 | 波多野结中文字幕在线69视频 | 精品一区二区三区五区六区七区 | 91在线精品国产丝袜超清 | heyzo在线播放 | 人与善交大片免费看 | 亚洲男女天堂 | 扒开女人下面 | 天天做天天爽 | 天天色色色 | 农村老少伦小说 | 国产无限免费观看黄网站 | 日韩欧美不卡片 | 亚洲视频999 | 午夜五月天 | 精品亚洲欧美中文字幕在线看 | se在线播放 | 99精品在线免费观看 | www.色.con| 精品欧美 | 免费黄色网站视频 | 五月天狠狠 | h视频免费高清在线观看 | 亚洲美洲国产日产 | 日韩欧免费一区二区三区 | 波多野结中文字幕在线69视频 | 日韩性公交车上xxhd免费 | 刺激一区仑乱 | 欧美日韩国产一区二区三区伦 | 我的青梅竹马是消防员2季未增删免费 | 国产精品久久国产三级国电话系列 |