欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java String類用法詳解

 更新時(shí)間:2021年06月24日 11:54:14   作者:入錯行的北北  
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java String類用法展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下

一、簡介

零碎知識點(diǎn)

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

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

//共享
String t1 = "123";
String t2 = "123";
System.out.ptintln(t1 == t2);//true,(== 比較的是內(nèi)存地址)

字符串常量池

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

堆在邏輯上的劃分

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

每一個字符串對象的創(chuàng)建都會放入永久代(每次創(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)存空間,并且會自動入池,不會產(chǎn)生垃圾
  • 會將匿名對象“”放入對象池,下一次不同對象直接賦值時(shí)直接利用池中已經(jīng)存在的匿名對象

構(gòu)造方法:

  • 在堆內(nèi)存創(chuàng)建對象
  • 會開辟兩塊堆內(nèi)存空間,其中一塊堆內(nèi)存會變成垃圾被系統(tǒng)回收,而且不能夠自動入池,需要通過public String intern();方法進(jìn)行手工入池。

三、常用方法

Modifier and Type Method Description
char charAt​(int index) 返回指定索引處的 char值。
int compareTo​(String anotherString) 按字典順序比較兩個字符串。
boolean endsWith​(String suffix) 測試此字符串是否以指定的后綴結(jié)尾。
boolean equals​(Object anObject) 將此字符串與指定的對象進(jìn)行比較。
boolean equalsIgnoreCase​(String anotherString) 將此 String與另一個 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) 返回一個字符串,其值為此字符串的串聯(lián)重復(fù) count次。
String replace​(CharSequence target, CharSequence replacement) 將此字符串中與文字目標(biāo)序列匹配的每個子字符串替換為指定的文字替換序列。
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() 返回一個字符串,其值為此字符串,并刪除了所有前導(dǎo) white space 。
String stripTrailing() 返回一個字符串,其值為此字符串,并刪除所有尾隨 white space 。
CharSequence subSequence​(int beginIndex, int endIndex) 返回作為此序列的子序列的字符序列。
String substring​(int beginIndex) 返回一個字符串,該字符串是此字符串的子字符串。
String substring​(int beginIndex, int endIndex) 返回一個字符串,該字符串是此字符串的子字符串。
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java多線程Future松獲取異步任務(wù)結(jié)果輕松實(shí)現(xiàn)

    Java多線程Future松獲取異步任務(wù)結(jié)果輕松實(shí)現(xiàn)

    這篇文章主要為大家介紹了Java多線程Future松獲取異步任務(wù)結(jié)果輕松實(shí)現(xiàn)方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • springboot FeignClient注解及參數(shù)

    springboot FeignClient注解及參數(shù)

    這篇文章主要介紹了springboot FeignClient注解及參數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • idea引入外部jar包的方法實(shí)現(xiàn)

    idea引入外部jar包的方法實(shí)現(xiàn)

    本文主要介紹了idea引入外部jar包的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • IDEA部署Tomcat的超詳細(xì)圖文教程

    IDEA部署Tomcat的超詳細(xì)圖文教程

    最近迫于無奈從我哪破舊的Eclipse轉(zhuǎn)換到了IDEA,然后就是超多的不習(xí)慣,下面這篇文章主要給大家介紹了關(guān)于IDEA部署Tomcat的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Java8 Optional判空詳解(簡化判空操作)

    Java8 Optional判空詳解(簡化判空操作)

    這篇文章主要給大家介紹了關(guān)于Java8 Optional判空(簡化判空操作)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 吊打Java面試官之Lambda表達(dá)式 Stream API

    吊打Java面試官之Lambda表達(dá)式 Stream API

    這篇文章主要介紹了吊打Java之jdk8的新特性包括Lambda表達(dá)式、函數(shù)式接口、Stream API全面刨析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Spring Boot下的Job定時(shí)任務(wù)

    Spring Boot下的Job定時(shí)任務(wù)

    編寫Job定時(shí)執(zhí)行任務(wù)十分有用,能解決很多問題,這次實(shí)習(xí)的項(xiàng)目里做了一下系統(tǒng)定時(shí)更新三方系統(tǒng)訂單狀態(tài)的功能,這里用到了Spring的定時(shí)任務(wù)使用的非常方便,下面總結(jié)一下如何使用,感興趣的朋友參考下吧
    2017-05-05
  • JFileChooser實(shí)現(xiàn)對選定文件夾內(nèi)圖片自動播放和暫停播放實(shí)例代碼

    JFileChooser實(shí)現(xiàn)對選定文件夾內(nèi)圖片自動播放和暫停播放實(shí)例代碼

    這篇文章主要介紹了JFileChooser實(shí)現(xiàn)對選定文件夾內(nèi)圖片自動播放和暫停播放實(shí)例代碼,需要的朋友可以參考下
    2017-04-04
  • SpringBoot Actuator未授權(quán)訪問漏洞修復(fù)詳解

    SpringBoot Actuator未授權(quán)訪問漏洞修復(fù)詳解

    這篇文章主要介紹了SpringBoot Actuator未授權(quán)訪問漏洞修復(fù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 基于Java實(shí)現(xiàn)中文分詞系統(tǒng)的示例代碼

    基于Java實(shí)現(xiàn)中文分詞系統(tǒng)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)一個簡易的中文分詞系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-07-07

最新評論