当前位置: 首页 > news >正文

Java API学习笔记

一.类

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));
http://www.xdnf.cn/news/510589.html

相关文章:

  • Spring AI Alibaba集成阿里云百炼大模型应用
  • SmartETL函数式组件的设计与应用
  • 【大模型面试每日一题】Day 22:若训练中发现Loss突然剧烈波动(Spike),可能有哪些原因?如何定位和修复?
  • nginx模块使用、过滤器模块以及handler模块
  • 自适应Prompt技术:让LLM精准理解用户意图的进阶策略
  • JMeter 教程:使用 HTTP 请求的参数列表发送 POST 请求(form 表单格式)
  • 贝塞尔曲线原理
  • Android studio Could not move temporary workspace
  • 使用AI 生成PPT 最佳实践方案对比
  • ChatGPT:OpenAI Codex—一款基于云的软件工程 AI 代理,赋能 ChatGPT,革新软件开发模式
  • window自带截图快捷键
  • C++学习:六个月从基础到就业——C++20:范围(Ranges)基础
  • 【OpenCV基础 1】几何变换、形态学处理、阈值分割、区域提取和脱敏处理
  • MLLM常见概念通俗解析(一)
  • 【基于Spring Boot 的图书购买系统】深度讲解 用户注册的前后端交互,Mapper操作MySQL数据库进行用户持久化
  • 如何利用内网穿透实现Cursor对私有化部署大模型的跨网络访问实践
  • 【图像生成大模型】CogVideoX-5b:开启文本到视频生成的新纪元
  • lvs-dr部署
  • c++学习之--- list
  • C语言链表的操作
  • 数字人技术的核心:AI与动作捕捉的双引擎驱动(210)
  • defer关键字:延迟调用机制-《Go语言实战指南》
  • 8.1UDP点对点聊天小项目
  • 软件架构之--论微服务的开发方法1
  • 软件工程各种图总结
  • 数据库MySQL基础2
  • 【回溯 剪支 状态压缩】# P10419 [蓝桥杯 2023 国 A] 01 游戏|普及+
  • Java大厂面试:从Web框架到微服务技术的场景化提问与解析
  • FAST-DDS源码分析PDP(一)
  • NoSQL实战指南:MongoDB与Redis企业级开发实战