当前位置: 首页 > 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));

相关文章:

  • iOS APP启动页及广告页的实现
  • Python打卡DAY29
  • 架构设计模式:构建健壮、可扩展的 Serverless 应用
  • Seata源码—6.Seata AT模式的数据源代理一
  • buck变换器的simulink/matlab仿真和python参数设计
  • 【AGI】大模型微调数据集准备
  • Nginx配置中include mime.types的作用及正确配置mime类型
  • 不同版本 Linux 系统账号操作指令 ——rtkit 账号删除、普通账号的创建 / 删除 / 权限修改超详细大全
  • 【深度学习】使用块的网络(VGG)
  • MyBatis 延迟加载与缓存
  • 10.7 LangChain v0.3架构大升级:模块化设计+多阶段混合检索,开发效率飙升3倍!
  • C++学习:六个月从基础到就业——C++17:std::optional/variant/any
  • CSS- 4.4 固定定位(fixed) 咖啡售卖官网实例
  • 院校机试刷题第六天:1134矩阵翻转、1052学生成绩管理、1409对称矩阵
  • 180KHz 60V 5A开关电流升压/升降压型DC-DC转换器XL4019升降压芯片
  • “Cloud Native English“云原生时代下的微服务架构设计:从理论到实战全解析
  • 相机Camera日志分析之十三:高通相机Camx 基于预览1帧的ConfigureStreams三级日志分析详解
  • Android开发-列表类视图
  • 机器学习入门之朴素叶贝斯和决策树分类(四)
  • linux上利用QProcess获取进程打印
  • IPO周报|本周2只新股申购,比亚迪、上汽“小伙伴”来了
  • 俄乌刚谈完美国便筹划与俄乌领导人通话,目的几何?
  • 私家车跑“顺风”出事故,意外险赔不赔?
  • 河南一女子被医院强制带走治疗,官方通报:当值医生停职
  • 沃尔玛上财季净利下滑12%:关税带来成本压力,新财季价格涨幅将高于去年
  • 混乱的5天:俄乌和谈如何从充满希望走向“卡壳”