一.類
1. String 類
不可變性:String
對象創建后不可修改,每次操作返回新對象
String str = "Hello";
str.length();
str.charAt(0);
str.substring(1, 4);
str.indexOf("l");
str.equals("hello");
str.toUpperCase();
String.join("-", "a", "b", "c");
2. StringBuilder & StringBuffer
可變字符串:適合頻繁修改字符串的場景
區別: ?
?StringBuilder(非線程安全,性能高) ?
?StringBuffer(線程安全,性能低)
StringBuilder sb = new StringBuilder("Java");sb.append(" API"); ? ? ?sb.insert(0, "Learn "); ?sb.reverse(); ? ? ? ?
3. Wrapper 類
基本類型 → 對象:Integer、Double、Boolean等
自動裝箱/拆箱:
Integer num = 10; ?int value = num; ?
常用方法:
? Integer.parseInt("123"); Double.valueOf("3.14");
二、集合框架(java.util)
1. 核心接口
List:有序可重復,如ArrayList、LinkedList
Set:無序唯一,如HashSet、TreeSet
Map:鍵值對,如HashMap、TreeMap。
2. List示例
?
import java.util.ArrayList;
import java.util.List;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.get(0); ? ? ? ? ?
list.size(); ? ? ? ?
list.remove(0); ? ? ? ?
3. Map示例
import java.util.HashMap;
import java.util.Map;
Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
map.put("two", 2);
map.get("one"); ? ? ? ?
map.containsKey("two");
for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println(entry.getKey() + ": " + entry.getValue());
}
4. 泛型
類型安全:指定集合存儲的元素類型
List<Integer> numbers = new ArrayList<>();numbers.add(10);
三、日期時間處理(java.time)
1. LocalDate/LocalTime/LocalDateTime
? import java.time.LocalDate;import java.time.LocalDateTime;LocalDate today = LocalDate.now();LocalDate birthday = LocalDate.of(2000, 1, 1);LocalDateTime now = LocalDateTime.now();
2. 格式化與解析
import java.time.format.DateTimeFormatter;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse("2025-05-18", formatter);
String formattedDate = date.format(formatter);
四、異常處理
1. 異常分類
受檢異常(Checked Exception):必須顯式處理,如IOException
非受檢異常(Unchecked Exception):繼承自RuntimeException,如NullPointerException
2. 捕獲與拋出
try {int result = 10 / 0;
} catch (ArithmeticException e) {System.out.println("除數不能為0");
} finally {
}
class MyException extends Exception {public MyException(String message) {super(message);}
}
五、多線程
1. 創建線程
繼承Thread類:
class MyThread extends Thread {public void run() {System.out.println("線程執行");}}MyThread thread = new MyThread();thread.start();
實現Runnable接口:
class MyRunnable implements Runnable {public void run() {System.out.println("任務執行");}}Thread thread = new Thread(new MyRunnable());thread.start();
2. 線程池
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
ExecutorService executor = Executors.newFixedThreadPool(5);
executor.submit(() -> {System.out.println("線程池任務");
});
executor.shutdown();
六、IO流
1. 文件讀寫
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
try (FileReader reader = new FileReader("test.txt")) {int data;while ((data = reader.read()) != -1) {System.out.print((char) data);}
} catch (IOException e) {e.printStackTrace();
}
try (FileWriter writer = new FileWriter("output.txt")) {writer.write("Hello, Java!");
} catch (IOException e) {e.printStackTrace();
}
2. NIO
import java.nio.file.Files;
import java.nio.file.Paths;
List<String> lines = Files.readAllLines(Paths.get("test.txt"));
七、反射
動態獲取類信息:
Class<?> clazz = Class.forName("java.util.ArrayList");System.out.println(clazz.getName()); // "java.util.ArrayList"Object obj = clazz.getDeclaredConstructor().newInstance();
八、網絡編程
1. TCP示例
服務器端:
try (ServerSocket serverSocket = new ServerSocket(8080)) {Socket socket = serverSocket.accept();} catch (IOException e) {e.printStackTrace();}
客戶端:
try (Socket socket = new Socket("localhost", 8080)) {// 發送/接收數據} catch (IOException e) {e.printStackTrace();}
九、Lambda表達式
簡化匿名類:
?
new Thread(new Runnable() {public void run() {System.out.println("傳統線程");}}).start();new Thread(() -> System.out.println("Lambda線程")).start();
集合遍歷:
?
List<String> list = List.of("a", "b", "c");list.forEach(item -> System.out.println(item));