目錄
1.String
1.1 概述
1.2 String類的特點
1.3 創建字串物件兩種方式的區別
1.4 String 構造方法
1.5 String 成員方法
1.6 應用
2.StringBuilder
2.1 概述
2.2 StringBuilder、StringBuffer類和String類的異同
2.3 構造方法
2.4 成員方法
2.5 應用
2.5.1 常見操作
2.5.2 StingBuilder 和 String 相互轉化
3. 集合 ArrayList
3.1 概述
3.2 ArrayList類常用方法
3.2.1 構造方法
3.2.2 成員方法
3.3 應用
首先,介紹下什么是API
API(Application Programming Interface,應用程式介面)是一些預先定義的介面(如函式、HTTP介面),或指軟體系統不同組成部分銜接的約定,用來提供應用程式與開發人員基于某軟體或硬體得以訪問的一組例程,而又無需訪問原始碼,或理解內部作業機制的細節,
Java API :指的就是 JDK 中提供的各種功能的 Java類
這些類將底層的實作封裝了起來,我們不需要關心這些類是如何實作的,
只需要學習這些類如何使用即可,我們可以通過幫助檔案來學習這些API如何使用
下面是java API的下載鏈接:密碼:1234
本文內容主要摘要java API檔案
1.String
1.1 概述
String類java.lang 包下,所以使用的時候不需要導包
String類代表字串, Java程式中的所有字串文字(例如"abc" )都被實作為此類的實體,字串不變; 它們的值在創建后不能被更改, 字串緩沖區支持可變字串, 因為String物件是不可變的,它們可以被共享, 例如:
String str = "abc"
相當于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
以下是一些如何使用字串的示例:
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);
1.2 String類的特點
1)字串不可變,它們的值在創建后不能被更改
2)雖然 String 的值是不可變的,但是它們可以被共享
3)字串效果上相當于字符陣列( char[] ),但是底層原理是位元組陣列( byte[] )
1.3 創建字串物件兩種方式的區別
1)通過構造方法創建:通過 new 創建的字串物件,每一次 new 都會申請一個記憶體空間,雖然內容相同,但是地址值不同
2)直接賦值方式創建:以 " " 方式給出的字串,只要字符序列相同(順序和大小寫),無論在程式代碼中出現幾次,JVM 都只會建立一個 String 物件,并在字串池中維護
1.4 String 構造方法
| String?() | 初始化新創建的 String物件,以使其表示空字符序列, |
| String?(byte[] bytes) | 通過使用平臺的默認字符集解碼指定的位元組陣列來構造新的 String , |
| String?(char[] value | 分配一個新的 String以便它表示當前包含在字符陣列引數中的字符序列, |
| String s = "abc" | 直接賦值的方式創建字串物件,內容就是abc |
1.5 String 成員方法
| charAt?(int index) | 回傳指定索引處的 char值 |
| compareTo?(String anotherString) | 按字典順序比較兩個字串 |
| concat?(String str) | 將指定的字串連接到該字串的末尾 |
| contains?(CharSequence s) | 當且僅當此字串包含指定的char值序列時才回傳true, |
| startsWith?(String prefix) | 測驗此字串是否以指定的前綴開頭, |
| endsWith?(String suffix) | 測驗此字串是否以指定的后綴結尾, |
| equals?(Object anObject) | 將此字串與指定物件進行比較, |
| getChars?(int srcBegin, int srcEnd, char[] dst, int dstBegin) | 將此字串中的字符復制到目標字符陣列中, |
| indexOf?(int ch) | 回傳指定字符第一次出現的字串內的索引, |
| indexOf?(int ch, int fromIndex) | 回傳指定字符第一次出現的字串內的索引,以指定的索引開始搜索, |
| indexOf?(String str) | 回傳指定子字串第一次出現的字串內的索引, |
| indexOf?(String str, int fromIndex) | 回傳指定子串的第一次出現的字串中的索引,從指定的索引開始, |
| lastIndexOf?(int ch) | 回傳指定字符的最后一次出現的字串中的索引, |
| lastIndexOf?(String str) | 回傳指定子字串最后一次出現的字串中的索引, |
| length?() | 回傳此字串的長度, |
| replace?(char oldChar, char newChar) | 回傳從替換所有出現的導致一個字串 oldChar ,在這個字串 newChar |
| replace?(CharSequence target, CharSequence replacement) | 將與字面目標序列匹配的字串的每個子字串替換為指定的文字替換序列, |
| toUpperCase?() | 將此 String所有字符轉換為大寫,使用默認語言環境的規則, |
| toLowerCase?() | 將此 String所有字符轉換為小寫,使用默認語言環境的規則 |
| trim?() | 回傳一個字串,其值為此字串,并洗掉任何前導和尾隨空格, |
1.6 應用
常見操作
public class Demo {
public static void main(String[] args) {
String s = " Hello world";
//回傳指定索引處的 char值
System.out.println(s.charAt(1));
//將指定的字串連接到該字串的末尾
System.out.println(s.concat("123"));
//測驗此字串是否以指定的前綴開頭
System.out.println(s.startsWith("h"));
//將此字串與指定物件進行比較
System.out.println(s.equals("hello"));
//回傳指定字符第一次出現的字串內的索引
System.out.println(s.indexOf("w"));
//回傳從替換所有出現的導致一個字串 oldChar ,在這個字串 newChar
System.out.println(s.replace("world","World"));
//將此 String所有字符轉換為大寫,使用默認語言環境的規則,
System.out.println(s.toUpperCase());
//將此 String所有字符轉換為小寫,使用默認語言環境的規則
System.out.println(s.toLowerCase());
//回傳一個字串,其值為此字串,并洗掉任何前導和尾隨空格,
System.out.println(s.trim());
}
}
2.StringBuilder
2.1 概述
一個可變的字符序列, 該類提供了一個與StringBuffer兼容的API,但不能保證同步, 該類被設計為在字串緩沖區被單個執行緒使用的地方(作為一般情況)用作StringBuffer替代替代, 在可能的情況下,建議使用這個類別優先于StringBuffer因為它在大多數實施中將更快,
一個StringBuilder的主要操作是append和insert方法,它們是多載的,以便接受任何型別的資料, 每個都有效地將給定的資料轉換為字串,然后將該字串的字符附加或插入字串構建器, append方法總是在構建器的末尾添加這些字符; insert方法將字符添加到指定點,
例如,如果z參考當前內容為“ start ”的字串構建器物件,那么方法呼叫z.append("le")將導致字串構建器包含“ startle ”,而z.insert(4, "le")會將字串構建器更改為包含“ starlet ”,
一般情況下,如果某人是指的一個實體StringBuilder ,然后sb.append(x)具有相同的效果sb.insert(sb.length(), x) ,
每個字串構建器都具有容量, 只要字串構建器中包含的字符序列的長度不超過容量,則不需要分配新的內部緩沖區, 如果內部緩沖區溢位,則會自動變大,
StringBuilder實體不能安全使用多執行緒, 如果需要同步,那么建議使用StringBuffer ,
除非另有說明,否則將null引數傳遞給null中的建構式或方法將導致拋出NullPointerException ,
2.2 StringBuilder、StringBuffer類和String類的異同
相同:
都是final類,不允許被繼承,主要是從性能和安全性上考慮的,因為這幾個類都是經常被使用著,且考慮到防止其中的引數被引數修改影響到其他的應用,
StringBuffer是執行緒安全,可以不需要額外的同步用于多執行緒中;
StringBuilder是非同步,運行于多執行緒中就需要使用著單獨同步處理,但是速度就比StringBuffer快多了;
StringBuffer與StringBuilder兩者共同之處:可以通過append、indert進行字串的操作,
不同:
String類:內容是不可變的
StringBuilder類和StringBuffer類:內容是可變的
運行速度不同:
快慢為:StringBuilder > StringBuffer > String
總結:
String:適用于少量的字串操作的情況
StringBuilder:適用于單執行緒下在字符緩沖區進行大量操作的情況
StringBuffer:適用多執行緒下在字符緩沖區進行大量操作的情況
2.3 構造方法
| StringBuilder?() | 構造一個沒有字符的字串構建器,初始容量為16個字符, |
| StringBuilder?(int capacity) | 構造一個沒有字符的字串構建器,以及由 capacity引數指定的初始容量, |
| StringBuilder?(CharSequence seq) | 構造一個字串構建器,其中包含與指定的 CharSequence相同的字符, |
| StringBuilder?(String str) | 構造一個初始化為指定字串內容的字串構建器, |
2.4 成員方法
| append?(char c) | 將 char引數的字串表示追加到此序列, |
| charAt?(int index) | 回傳指定索引處的此序列中的 char值 |
| delete?(int start, int end) | 洗掉此序列的子字串中的字符, |
| deleteCharAt?(int index) | 在此序列中的指定位置移除 char , |
| getChars?(int srcBegin, int srcEnd, char[] dst, int dstBegin) | 字符從該序列復制到目標字符陣列 dst , |
| indexOf?(String str) | 回傳指定子字串第一次出現的字串內的索引, |
| insert?(int offset, char c) | 將 char引數的字串表示插入到此序列中, |
| lastIndexOf?(String str) | 回傳指定子字串最后一次出現的字串中的索引, |
| length?() | 回傳長度(字符數), |
| replace?(int start, int end, String str) | 用指定的 String的字符替換此序列的子字串中的字符 |
| reverse?() | 導致該字符序列被序列的相反代替, |
| toString?() | 回傳表示此順序中的資料的字串, |
2.5 應用
2.5.1 常見操作
public class Demo {
public static void main(String[] args) {
//創建物件
StringBuilder sb = new StringBuilder();
//append(任意型別):添加資料,并回傳物件本身
// StringBuilder sb2 = sb.append("hello");
// System.out.println("sb:" + sb);
// System.out.println("sb2:" + sb2);
// System.out.println(sb == sb2);
// sb.append("hello");
// sb.append("world");
// sb.append("java");
// sb.append(100);
//鏈式編程
sb.append("hello").append("world").append("java").append(100);
System.out.println("sb:" + sb);
//indexOf?(String str):回傳指定子字串第一次出現的字串內的索引,
System.out.println("sb:" + sb.indexOf("java"));
//replace?(int start, int end, String str):用指定的 String的字符替換此序列的子字串中的字符
sb.replace(0,5,"Hello");
System.out.println("sb:" +sb);
//reverse():回傳相反的字符序列
sb.reverse();
System.out.println("sb:" + sb);
//delete?(int start, int end):洗掉此序列的子字串中的字符
sb.delete(0,3);
System.out.println("sb:" + sb);
}
}
2.5.2 StingBuilder 和 String 相互轉化
1)StringBuilder轉換為String
? public String toString():通過 toString() 就可以實作把 StringBuilder 轉換為 String
2)String轉換為StringBuilder
? public StringBuilder(String s):通過構造方法就可以實作把 String 轉換為 StringBuilder
public class Demo {
public static void main(String[] args) {
//StringBuilder 轉換為 String
StringBuilder sb1 = new StringBuilder();
sb1.append("hello");
//String s = sb; //這個是錯誤的做法
//public String toString():通過 toString() 就可以實作把 StringBuilder 轉換為 String
String s1 = sb1.toString();
System.out.println(s1);
//String 轉換為 StringBuilder
String s2 = "hello";
//StringBuilder sb = s; //這個是錯誤的做法
//public StringBuilder(String s):通過構造方法就可以實作把 String 轉換為 StringBuilder
StringBuilder sb2 = new StringBuilder(s2);
System.out.println(sb2);
}
}
3. 集合 ArrayList
3.1 概述
集合:提供一種存盤空間可變的存盤模型,存盤的資料容量可以發生改變
特點:底層是陣列實作的,長度可以變化
泛型的使用:用于約束集合中存盤元素的資料型別
3.2 ArrayList類常用方法
3.2.1 構造方法
ArrayList<String> 集合名 = new ArrayList<String>();
3.2.2 成員方法
| add?(int index, E element) | 在此串列中的指定位置插入指定的元素, |
| add?(E e) | 將指定的元素追加到此串列的末尾, |
| clear?() | 從串列中洗掉所有元素, |
| contains?(Object o) | 如果此串列包含指定的元素,則回傳 true , |
| get?(int index) | 回傳此串列中指定位置的元素, |
| indexOf?(Object o) | 回傳此串列中指定元素的第一次出現的索引,如果此串列不包含元素,則回傳-1, |
| isEmpty?() | 如果此串列不包含元素,則回傳 true , |
| remove?(int index) | 洗掉該串列中指定位置的元素, |
| set?(int index, E element) | 用指定的元素替換此串列中指定位置的元素, |
| size?() | 回傳此串列中的元素數, |
| sort?(Comparator<? super E> c) | 根據指定的Comparator引發的順序排列此串列, |
3.3 應用
1)常見操作
//創建集合
ArrayList<String> array = new ArrayList<String>();
//添加元素
array.add("hello");
array.add("world");
array.add("java");
//輸出集合
System.out.println("array:" + array);
//public int size():回傳集合中的元素的個數
System.out.println(array.size());
//public boolean remove(Object o):洗掉指定的元素,回傳洗掉是否成功
// System.out.println(array.remove("world"));
// System.out.println(array.remove("javaee"));
//public E remove(int index):洗掉指定索引處的元素,回傳被洗掉的元素
// System.out.println(array.remove(1));
//IndexOutOfBoundsException
// System.out.println(array.remove(3));
//public E set(int index,E element):修改指定索引處的元素,回傳被修改的元素
// System.out.println(array.set(1,"javaee"));
//IndexOutOfBoundsException
// System.out.println(array.set(3,"javaee"));
//public E get(int index):回傳指定索引處的元素
// System.out.println(array.get(0));
// System.out.println(array.get(1));
// System.out.println(array.get(2));
//System.out.println(array.get(3));
2)集合遍歷
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
//創建集合
ArrayList<String> array = new ArrayList<String>();
//添加元素
array.add("小明");
array.add("小紅");
array.add("小王");
//遍歷集合,其次要能夠獲取到集合的長度,這個通過size()方法實作
//System.out.println(array.size());
//遍歷集合的通用格式
for(int i=0; i<array.size(); i++) {
String s = array.get(i);
System.out.println(s);
}
}
}
輸出結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/327977.html
標籤:java
下一篇:關于Map集合那些不為人知的秘密
