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));
相关推荐
solicitous33 分钟前
遇到一个口头机遇
学习·生活
观书喜夜长2 小时前
大模型应用开发学习-基于 LangChain 框架实现的交互式问答脚本
python·学习
中屹指纹浏览器2 小时前
2026指纹浏览器性能瓶颈分析与优化技巧
经验分享·笔记
FPGA小迷弟3 小时前
FPGA 时序约束基础:从时钟定义到输入输出延迟的完整设置
前端·学习·fpga开发·verilog·fpga
雷工笔记4 小时前
随笔|走!跳楼去!
笔记
就叫飞六吧4 小时前
国产数据库gbase8s安装-网盘
笔记
炽烈小老头4 小时前
【每天学习一点算法 2026/03/22】前 K 个高频元素
学习·算法
神舟之光4 小时前
Java面向对象编程知识补充学习-2026.3.21
java·开发语言·学习
网络工程小王4 小时前
【大数据技术详解】——Kibana(学习笔记)
大数据·笔记·学习
im_AMBER4 小时前
Leetcode 144 位1的个数 | 只出现一次的数字
学习·算法·leetcode