String數組
String類被final修飾符修飾,因此不能將其進行繼承,全部對它的改變都要從新建立一個新的地址安全
1.String的構造器app
String()性能
String(byte 【】bytes)//把byte類型的用ASCII碼構成一個新的數組ui
String(byte 【】bytes,int offest,int length)//從哪開始,指定長度spa
String(byte 【】bytes,Charset charset)//指定用來解碼的Charset線程
String (char 【】 value)//字符串的初始值設計
String(char 【】value ,int offest ,int count )//從哪開始,指定長度指針
2.String的方法對象
(1)String的判斷功能
public boolean equals(Object objiect){//先比較引用類型的內存地址,後比較值}
boolean /contains(String str ){\\ 是否包含子字符串}
boolean /startsWith(String str ){\\ 判斷字符串是否以str開始}
boolean /endsWith(String str ){\\ 判斷字符串是否以str結束}
boolean /equalsIgnoreCase(String str){\\忽略大小寫的比較}
boolean /is Empty(){\\判斷字符串是否爲空}
(2)String的取值功能
int /length() {\\返回字符串的長度}
char /charAt(int index){\\經過字符下標找到指定的字符}
int /indexOf(int ch){\\尋找出此對象表示的字符,在字符序列中第一次出現的索引,沒有時報-1}
int /lastIndexOf(int ch){\\尋找出此對象表示的字符,在字符序列中最後一次出現的索引,沒有時報-1}
int /indexOf(int ch,int fromIndex){\\從指定位置尋找出此對象表示的字符,在字符序列中第一次出現的索引,沒有時報-1}
String /subString(int Start){\\截取從start到結束的字符串}
String /subString(int Start,int end){\\截取從start到end的字符串}【包前不包後】
(3)String的轉換
byte 【】 /get Byte(){\\把字符串轉換爲byte類型的數組}
char 【】 /toCharArray(){\\把字符串轉換爲char型的數組}
static String /valueOf(char【】ch){\\靜態方法能夠直接用對象來調用,把char【】轉換爲字符串}
String /toUpperCase(){\\把小寫轉換成大寫}
String /LowerCase(){\\把大寫轉換成小寫}
String /concat(String st){\\拼接}
(3)String的其餘功能
替換功能:String /replace(char old,char new ){\\替換單個字符}
String /replace(String old,String new ){\\替換整個字符串}
去除字符串的兩個空格:String /trim(){\\只能去除字符串開始和結尾的兩個空格,中間的不能}
StringBuffer
線程安全的可變字符序列
1.StringBuffer的構造方法
public StringBuffer(){}
public StringBuffer(int capacity){}
public StringBuffer(String str){}
2.StringBuffer的經常使用方法
append(){\\追加【內存中的改變】}
toString(){\\經過StringBuffer轉換String}
reverse(){\\反轉}
== 比較常量時就比較值,比較引用類型時,就比較的是地址值
equals 只能比較引用類型,比較時先比較它們的內存地址,再去比較它們的值,兩個條件值是或的關係
String 字符串常量
StringBuffer 字符串變量(線程安全)
StringBuilder 字符串變量(非線程安全):該類被設計用做 StringBuffer 的一個簡易替換,用在字符串緩衝區被單個線程使用的時候
String 類型和 StringBuffer 類型的主要性能區別其實在於 String 是不可變的對象, 所以在每次對 String 類型進行改變的時候其實都等同於生成了一個新的 String 對象,而後將指針指向新的 String 對象,因此常常改變內容的字符串最好不要用 String ,由於每次生成對象都會對系統性能產生影響,特別當內存中無引用對象多了之後, JVM 的 GC 就會開始工做,那速度是必定會至關慢的。