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.pswp.cn/diannao/83582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医疗信息系统安全防护体系的深度构建与理论实践融合

一、医疗数据访问系统的安全挑战与理论基础 1.1 系统架构安全需求分析 在医疗信息系统中&#xff0c;基于身份标识的信息查询功能通常采用分层架构设计&#xff0c;包括表现层、应用层和数据层。根据ISO/IEC 27001信息安全管理体系要求&#xff0c;此类系统需满足数据保密性…

5.18本日总结

一、英语 复习list3list28 二、数学 学习14讲部分内容&#xff0c;1000题13讲部分 三、408 学习计网5.3剩余内容 四、总结 计网TCP内容比较重要&#xff0c;连接过程等要时常复习&#xff1b;高数学到二重积分对定积分的计算相关方法有所遗忘&#xff0c;需要加强巩固。…

MATLAB2025新功能

截至2023年9月&#xff0c;MATLAB官方尚未公布2025版本的具体更新内容。根据历史更新规律和技术发展趋势&#xff0c;未来版本可能会在以下方面进行优化&#xff1a; AI与深度学习增强 可能新增自动化模型压缩工具强化生成式AI模型支持改进的ONNX格式转换接口 性能提升 矩阵运…

算法题(149):矩阵消除游戏

审题&#xff1a; 本题需要我们找到消除矩阵行与列后可以获得的最大权值 思路&#xff1a; 方法一&#xff1a;贪心二进制枚举 这里的矩阵消除时&#xff0c;行与列的消除会互相影响&#xff0c;所以如果我们先统计所有行和列的总和&#xff0c;然后选择消除最大的那一行/列&am…

Uniapp、Flutter 和 React Native 全面对比

文章目录 前言Uni-app、Flutter 和 React Native 跨平台框架对比报告1. 性能对比2. 跨平台能力3. 学习曲线4. 社区生态与第三方库5. 原生能力扩展6. UI 渲染能力7. 企业支持与典型使用场景8. 开发效率与工具链 前言 将对 Uniapp、Flutter 和 React Native 进行全面对比&#x…

JAVA SE 多线程(上)

文章目录 &#x1f4d5;1. Thread类及常见方法✏️1.1 创建线程✏️1.2 Thread 的常见构造方法✏️1.3 Thread 的几个常见属性✏️1.4 启动一个线程---start()✏️1.5 中断一个线程---interrupt()✏️1.6 等待一个线程---join()✏️1.7 获取当前线程引用✏️1.8 休眠当前线程 &…

Linux云计算训练营笔记day10(MySQL数据库)

Linux云计算训练营笔记day10&#xff08;MySQL数据库&#xff09; 目录 Linux云计算训练营笔记day10&#xff08;MySQL数据库&#xff09;ifnull别名聚合函数group byHAVING 子查询关联查询 ifnull 在DQL语句中可以使用函数或表达式 函数 IFNULL(arg1,arg2) 如果arg1为NULL,函…

上位机知识篇---流式Web服务器模式的实现

文章目录 前言 前言 本文简单介绍了流式Web服务器模式的实现。

Dify与n8n全面对比指南:AI应用开发与工作流自动化平台选择【2025最新】

Dify与n8n全面对比指南&#xff1a;AI应用开发与工作流自动化平台选择【2025最新】 随着AI技术与自动化工具的迅速发展&#xff0c;开发者和企业面临着多种平台选择。Dify和n8n作为两个备受关注的自动化平台&#xff0c;分别专注于不同领域&#xff1a;Dify主要面向AI应用开发&…

day19-线性表(顺序表)(链表I)

一、补充 安装软件命令&#xff1a; sudo apt-get install (软件名) 安装格式化对齐&#xff1a;sudo apt-get install clang-format内存泄漏检测工具&#xff1a; sudo apt-get install valgrind 编译后&#xff0c;使用命令 valgrind ./a.out 即可看内存是…

AI:人形机器人一定是人的形状吗?

本文将从技术角度分析人形机器人是否必须是人的形状&#xff0c;以及人形与非人形机器人在适用场合、优缺点上的差异。以下是详细解答&#xff1a; 人形机器人一定是人的形状吗&#xff1f; 不&#xff0c;人形机器人&#xff08;Humanoid Robot&#xff09;在技术上通常指外…

布隆过滤器和布谷鸟过滤器

原文链接&#xff1a;布隆过滤器和布谷鸟过滤器 布隆过滤器 介绍 布隆过滤器&#xff08;Bloom Filter&#xff09;是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数&#xff0c;检查值是“可能在集合中”还是“绝对不在集合中” 空间效率高&a…

无需配置光猫,使用网管交换机配合路由器的IPTV功能实现单线复用

一、背景 弱电箱和电视柜只预留了一根网线&#xff0c;路由器放在电视柜&#xff0c;想实现既可以上网又可以正常观看iptv&#xff0c;本文提供了一种方法。 二、准备工作 1、带iptv功能的路由器&#xff1b;2、水星sg105pro网管交换机&#xff1b;3、网线若干&#xff1b; …

深入理解SpringBoot中的SpringCache缓存技术

深入理解SpringBoot中的SpringCache缓存技术 引言 在现代应用开发中&#xff0c;缓存技术是提升系统性能的重要手段之一。SpringBoot提供了SpringCache作为缓存抽象层&#xff0c;简化了缓存的使用和管理。本文将深入探讨SpringCache的核心技术点及其在实际业务中的应用场景。…

2025认证杯数学建模A题思路+代码+模型:小行星轨迹预测

2025认证杯数学建模A题思路代码模型&#xff0c;详细内容见文末名片 近地小行星&#xff08; Near Earth Asteroids, NEAs &#xff09;是轨道相对接近地球的小行 星&#xff0c;它的正式定义为椭圆轨道的近日距不大于 1.3 天文单位&#xff08; AU &#xff09;的小行星。 …

LeetCode Hot100刷题——轮转数组

56. 轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: …

「Mac畅玩AIGC与多模态41」开发篇36 - 用 ArkTS 构建聚合搜索前端页面

一、概述 本篇基于上一节 Python 实现的双通道搜索服务&#xff08;聚合 SearxNG 本地知识库&#xff09;&#xff0c;构建一个完整的 HarmonyOS ArkTS 前端页面。用户可在输入框中输入关键词&#xff0c;实时查询本地服务 http://localhost:5001/search?q...&#xff0c;返…

开源鸿蒙北向源码开发: 5.0kit化相关sdk编译

5.0kit化可以在编译系统sdk时添加,将你的kit文件加入编译使得最终生成的sdk包含kits文件 修改编译脚本 修改build仓里面的构建脚本文件,添加kits目录脚本命令 社区的build脚本已经有kits编译功能了,只需要把你的kits目录新增的kit拷贝到社区仓interface仓了,和社区的都一起编…

题单:汉诺塔问题

题目描述 如下图所示&#xff0c;设有 nn 个大小不等的中空圆盘&#xff0c;按照从小到大的顺序叠套在立柱 A 上&#xff0c;另有两根立柱 B 和 C 。 现在要求把全部圆盘从 A 柱&#xff08;称为源柱&#xff09;移到 C 柱&#xff08;称为目标柱&#xff09;&#xff0c;移动…

(面试)TCP、UDP协议

TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;是互联网核心的传输层协议&#xff0c;负责应用程序之间的数据传输。它们在设计目标、特性和适用场景上有显著差异&#xff1a; TCP&#xff1a;面向连接&#xff0c;可靠的&#xff0c;速…