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));
相关推荐
电子云与长程纠缠8 分钟前
Blender入门学习01
学习·blender
qiuiuiu4131 小时前
正点原子RK3568学习日志12-注册字符设备
linux·开发语言·单片机·学习·ubuntu
聪明的笨猪猪2 小时前
Java JVM “内存(1)”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
_dindong2 小时前
Linux网络编程:Socket编程TCP
linux·服务器·网络·笔记·学习·tcp/ip
金士顿2 小时前
ethercat网络拓扑详细学习
学习
知识分享小能手2 小时前
uni-app 入门学习教程,从入门到精通,uni-app组件 —— 知识点详解与实战案例(4)
前端·javascript·学习·微信小程序·小程序·前端框架·uni-app
wahkim3 小时前
Flutter 学习资源及视频
学习
摇滚侠3 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 属性优先级 行内写法 变量选择 笔记42
java·spring boot·笔记
摇滚侠3 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 总结 热部署 常用配置 笔记44
java·spring boot·笔记
小白要努力sgy3 小时前
待学习--中间件
学习·中间件