Java API学习笔记

一.类

1. String 类

不可变性String对象创建后不可修改,每次操作返回新对象

java 复制代码
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(线程安全,性能低)

java 复制代码
StringBuilder sb = new StringBuilder("Java");
  sb.append(" API");      
  sb.insert(0, "Learn ");  
  sb.reverse();         

3. Wrapper 类

基本类型 → 对象:Integer、Double、Boolean等

自动装箱/拆箱:

java 复制代码
 Integer num = 10;  
 int value = num;  

常用方法:

java 复制代码
  Integer.parseInt("123"); 
  Double.valueOf("3.14"); 

二、集合框架(java.util)

1. 核心接口

List:有序可重复,如ArrayList、LinkedList

Set:无序唯一,如HashSet、TreeSet

Map:键值对,如HashMap、TreeMap。

2. List示例

java 复制代码
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示例

java 复制代码
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. 泛型

类型安全:指定集合存储的元素类型

java 复制代码
  List<Integer> numbers = new ArrayList<>();
  numbers.add(10);
  

三、日期时间处理(java.time)

1. LocalDate/LocalTime/LocalDateTime

java 复制代码
  import java.time.LocalDate;
  import java.time.LocalDateTime;
  LocalDate today = LocalDate.now();
  LocalDate birthday = LocalDate.of(2000, 1, 1);
  LocalDateTime now = LocalDateTime.now();

2. 格式化与解析

java 复制代码
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. 捕获与抛出

java 复制代码
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类:

java 复制代码
 class MyThread extends Thread {
      public void run() {
          System.out.println("线程执行");
      }
  }
  MyThread thread = new MyThread();
  thread.start();

实现Runnable接口:

java 复制代码
class MyRunnable implements Runnable {
      public void run() {
          System.out.println("任务执行");
      }
  }
  Thread thread = new Thread(new MyRunnable());
  thread.start();

2. 线程池

java 复制代码
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
ExecutorService executor = Executors.newFixedThreadPool(5);
executor.submit(() -> {
    System.out.println("线程池任务");
});
executor.shutdown();

六、IO流

1. 文件读写

java 复制代码
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

java 复制代码
import java.nio.file.Files;
import java.nio.file.Paths;
List<String> lines = Files.readAllLines(Paths.get("test.txt"));

七、反射

动态获取类信息:

java 复制代码
 Class<?> clazz = Class.forName("java.util.ArrayList");
  System.out.println(clazz.getName()); // "java.util.ArrayList"
  Object obj = clazz.getDeclaredConstructor().newInstance();

八、网络编程

1. TCP示例

服务器端:

java 复制代码
 try (ServerSocket serverSocket = new ServerSocket(8080)) {
      Socket socket = serverSocket.accept();
  } catch (IOException e) {
      e.printStackTrace();
  }

客户端:

java 复制代码
try (Socket socket = new Socket("localhost", 8080)) {
      // 发送/接收数据
  } catch (IOException e) {
      e.printStackTrace();
  }

九、Lambda表达式

简化匿名类:

java 复制代码
new Thread(new Runnable() {
      public void run() {
          System.out.println("传统线程");
      }
  }).start();
  new Thread(() -> System.out.println("Lambda线程")).start();

集合遍历:

java 复制代码
 List<String> list = List.of("a", "b", "c");
 list.forEach(item -> System.out.println(item));
相关推荐
ysy164806723911 分钟前
03算法学习_977、有序数组的平方
学习·算法
FAREWELL0007518 分钟前
Unity学习总结篇(1)关于各种坐标系
学习·unity·c#·游戏引擎
龙湾开发18 分钟前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 12.曲面细分
c++·笔记·学习·3d·图形渲染
霸王蟹36 分钟前
React中巧妙使用异步组件Suspense优化页面性能。
前端·笔记·学习·react.js·前端框架
ljt272496066137 分钟前
Compose笔记(二十四)--Canvas
笔记·android jetpack
jz_ddk1 小时前
[学习] RTKLib详解:rtcm2.c、rtcm3.c、rtcm3e与rtcmn.c
c语言·学习·算法
霸王蟹1 小时前
React 19 中的useRef得到了进一步加强。
前端·javascript·笔记·学习·react.js·ts
霸王蟹1 小时前
React 19版本refs也支持清理函数了。
前端·javascript·笔记·react.js·前端框架·ts
Generalzy2 小时前
学习!FastAPI
学习·sqlite·fastapi
ha20428941942 小时前
c++学习之--- list
c语言·c++·学习·list