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));
相关推荐
teeeeeeemo4 分钟前
回调函数 vs Promise vs async/await区别
开发语言·前端·javascript·笔记
软件黑马王子1 小时前
C#系统学习第八章——字符串
开发语言·学习·c#
strongwyy3 小时前
蓝牙墨水屏上位机学习(2)
学习
九皇叔叔3 小时前
(3)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别
学习
致***锌4 小时前
期权标准化合约是什么?
笔记
Wilber的技术分享5 小时前
【机器学习实战笔记 14】集成学习:XGBoost算法(一) 原理简介与快速应用
人工智能·笔记·算法·随机森林·机器学习·集成学习·xgboost
The_cute_cat5 小时前
Ajax和Axios的初步学习
前端·学习·ajax
amazinging6 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习
V我五十买鸡腿6 小时前
顺序栈和链式栈
c语言·数据结构·笔记·算法
祁思妙想6 小时前
八股学习(五)---MySQL
学习