Java的核心类库
引言
在Java编程中,熟练掌握常用类与对象操作是开发的基础。Java的核心类库提供了丰富的功能,可以帮助开发者高效地处理各种编程任务。本文将详细介绍Java字符串操作、集合框架、日期与时间处理等内容,并通过图表和表格进行总结与示范。
字符串操作
字符串类(String)
String类用于表示字符串,字符串是字符的序列,属于不变对象(immutable)。常用的字符串操作包括长度、拼接、比较、截取、替换等。
public class StringExample {public static void main(String[] args) {String str = "Hello, Java!";// 获取字符串长度int length = str.length();System.out.println("Length: " + length); // 输出:Length: 12// 字符串拼接String newStr = str.concat(" Welcome!");System.out.println("Concatenated: " + newStr); // 输出:Concatenated: Hello, Java! Welcome!// 字符串比较boolean isEqual = str.equals("Hello, Java!");System.out.println("Is Equal: " + isEqual); // 输出:Is Equal: true// 字符串截取String substring = str.substring(7, 11);System.out.println("Substring: " + substring); // 输出:Substring: Java// 字符串替换String replaced = str.replace("Java", "World");System.out.println("Replaced: " + replaced); // 输出:Replaced: Hello, World!}
}
常用方法表格总结
| 方法 | 描述 | 示例 |
|---|---|---|
length() | 返回字符串的长度 | str.length(); |
concat(String str) | 将指定字符串连接到此字符串的末尾 | str.concat(" Welcome!"); |
equals(Object obj) | 比较此字符串与指定对象是否相等 | str.equals("Hello, Java!"); |
substring(int beginIndex, int endIndex) | 返回一个新字符串,它是此字符串的一个子字符串 | str.substring(7, 11); |
replace(CharSequence target, CharSequence replacement) | 将匹配的字符或字符串替换为新字符或字符串 | str.replace("Java", "World"); |
toUpperCase() | 将所有字符转换为大写 | str.toUpperCase(); |
toLowerCase() | 将所有字符转换为小写 | str.toLowerCase(); |
trim() | 去除字符串两端的空格 | str.trim(); |
charAt(int index) | 返回指定索引处的字符 | str.charAt(0); |
indexOf(String str) | 返回子字符串第一次出现的索引,如果没有找到则返回-1 | str.indexOf("Java"); |
集合框架
Java集合框架提供了一组接口和类,用于存储和操作一组对象。集合框架包括以下常用接口和类:
List接口
List接口是一种有序集合,允许重复元素。常用实现类是ArrayList和LinkedList。
import java.util.ArrayList;
import java.util.List;public class ListExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Apple"); // 允许重复元素System.out.println("List: " + list);// 访问元素String firstElement = list.get(0);System.out.println("First Element: " + firstElement);// 遍历集合for (String element : list) {System.out.println("Element: " + element);}}
}
Set接口
Set接口是一种不包含重复元素的集合。常用实现类是HashSet和TreeSet。
import java.util.HashSet;
import java.util.Set;public class SetExample {public static void main(String[] args) {Set<String> set = new HashSet<>();set.add("Apple");set.add("Banana");set.add("Apple"); // 不允许重复元素System.out.println("Set: " + set);// 遍历集合for (String element : set) {System.out.println("Element: " + element);}}
}
Map接口
Map接口是一种键值对(Key-Value)映射。不允许重复的键。常用实现类是HashMap和TreeMap。
import java.util.HashMap;
import java.util.Map;public class MapExample {public static void main(String[] args) {Map<String, Integer> map = new HashMap<>();map.put("Apple", 10);map.put("Banana", 20);map.put("Apple", 30); // 键不允许重复,值会被覆盖System.out.println("Map: " + map);// 访问元素int appleCount = map.get("Apple");System.out.println("Apple Count: " + appleCount);// 遍历集合for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());}}
}
集合框架表格总结
| 接口 | 实现类 | 特点 | 示例 |
|---|---|---|---|
| List | ArrayList, LinkedList | 有序集合,允许重复元素 | List<String> list = new ArrayList<>(); |
| Set | HashSet, TreeSet | 无序集合,不允许重复元素 | Set<String> set = new HashSet<>(); |
| Map | HashMap, TreeMap | 键值对映射,不允许重复键 | Map<String, Integer> map = new HashMap<>(); |
日期与时间处理
Java提供了多种日期和时间处理的类,主要包括Date类、Calendar类和java.time包中的新API。
Date类
Date类表示特定的时间,精确到毫秒。
import java.util.Date;public class DateExample {public static void main(String[] args) {Date now = new Date();System.out.println("Current Date: " + now);// 创建特定日期Date specificDate = new Date(2020, 1, 1);System.out.println("Specific Date: " + specificDate);}
}
Calendar类
Calendar类提供了更灵活的日期操作功能。
import java.util.Calendar;public class CalendarExample {public static void main(String[] args) {Calendar calendar = Calendar.getInstance();System.out.println("Current Date: " + calendar.getTime());// 设置特定日期calendar.set(2020, Calendar.JANUARY, 1);System.out.println("Specific Date: " + calendar.getTime());}
}
java.time包
Java 8引入了新的日期和时间API,包括LocalDate、LocalTime、LocalDateTime和DateTimeFormatter类等。
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class DateTimeExample {public static void main(String[] args) {// 获取当前日期LocalDate date = LocalDate.now();System.out.println("Current Date: " + date);// 获取当前日期和时间LocalDateTime dateTime = LocalDateTime.now();System.out.println("Current DateTime: " + dateTime);// 格式化日期和时间DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String formattedDateTime = dateTime.format(formatter);System.out.println("Formatted DateTime: " + formattedDateTime);}
}
日期与时间处理的表格总结
| 类名 | 描述 | 示例 |
|---|---|---|
| Date | 表示特定的时间 | Date now = new Date(); |
| Calendar | 提供更灵活的日期操作功能 | Calendar calendar = Calendar.getInstance(); |
| LocalDate | 表示 ISO-8601日历系统中的日期(无时间) | LocalDate date = LocalDate.now(); |
| LocalTime | 表示 ISO-8601日历系统中的时间(无日期) | LocalTime time = LocalTime.now(); |
| LocalDateTime | 表示日期和时间的组合 | LocalDateTime dateTime = LocalDateTime.now(); |
| DateTimeFormatter | 格式化和解析日期与时间 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
应用场景与实践
字符串操作应用场景
字符串操作在各种应用场景中广泛使用,如数据输入验证、文本处理、日志记录等。例如,在处理用户输入时,可以使用字符串方法去除空格、转换大小写和验证内容格式。
public class StringValidation {public static void main(String[] args) {String userInput = " Hello Java! ";// 去除两端空格String trimmedInput = userInput.trim();System.out.println("Trimmed Input: " + trimmedInput);// 验证内容格式(检查是否以 "Hello" 开头)if (trimmedInput.startsWith("Hello")) {System.out.println("Valid Input");} else {System.out.println("Invalid Input");}}
}
集合操作应用场景
集合框架的应用场景包括数据存储与检索、去重、排序等。例如,在开发购物车功能时,可以使用List存储商品列表,使用Set去重,以及使用Map存储商品及其数量。
import java.util.HashMap;
import java.util.Map;public class ShoppingCart {private Map<String, Integer> cart = new HashMap<>();// 添加商品public void addItem(String item) {cart.put(item, cart.getOrDefault(item, 0) + 1);}// 获取购物车中商品数量public int getItemCount(String item) {return cart.getOrDefault(item, 0);}public static void main(String[] args) {ShoppingCart shoppingCart = new ShoppingCart();shoppingCart.addItem("Apple");shoppingCart.addItem("Apple");shoppingCart.addItem("Banana");System.out.println("Apple Count: " + shoppingCart.getItemCount("Apple")); // 输出:Apple Count: 2System.out.println("Banana Count: " + shoppingCart.getItemCount("Banana")); // 输出:Banana Count: 1}
}
日期与时间处理应用场景
日期与时间处理广泛应用于日志记录、定时任务、日期计算等场景。例如,在构建一个事件提醒应用时,可以使用LocalDate存储事件日期,并使用Period进行日期计算。
import java.time.LocalDate;
import java.time.Period;public class EventReminder {public static void main(String[] args) {LocalDate eventDate = LocalDate.of(2024, 6, 13);LocalDate currentDate = LocalDate.now();// 计算剩余天数Period period = Period.between(currentDate, eventDate);int remainingDays = period.getDays();System.out.println("Event is in " + remainingDays + " days");}
}
表格总结
字符串操作方法表
| 方法 | 描述 | 示例 |
|---|---|---|
length() | 返回字符串的长度 | str.length(); |
concat(String str) | 将指定字符串连接到此字符串的末尾 | str.concat(" Welcome!"); |
equals(Object obj) | 比较此字符串与指定对象是否相等 | str.equals("Hello, Java!"); |
substring(int beginIndex, int endIndex) | 返回一个新字符串,它是此字符串的一个子字符串 | str.substring(7, 11); |
replace(CharSequence target, CharSequence replacement) | 将匹配的字符或字符串替换为新字符或字符串 | str.replace("Java", "World"); |
集合框架接口与实现类表
| 接口 | 实现类 | 特点 | 示例 |
|---|---|---|---|
| List | ArrayList, LinkedList | 有序集合,允许重复元素 | List<String> list = new ArrayList<>(); |
| Set | HashSet, TreeSet | 无序集合,不允许重复元素 | Set<String> set = new HashSet<>(); |
| Map | HashMap, TreeMap | 键值对映射,不允许重复键 | Map<String, Integer> map = new HashMap<>(); |
日期与时间处理类表
| 类名 | 描述 | 示例 |
|---|---|---|
| Date | 表示特定的时间 | Date now = new Date(); |
| Calendar | 提供更灵活的日期操作功能 | Calendar calendar = Calendar.getInstance(); |
| LocalDate | 表示 ISO-8601日历系统中的日期(无时间) | LocalDate date = LocalDate.now(); |
| LocalTime | 表示 ISO-8601日历系统中的时间(无日期) | LocalTime time = LocalTime.now(); |
| LocalDateTime | 表示日期和时间的组合 | LocalDateTime dateTime = LocalDateTime.now(); |
| DateTimeFormatter | 格式化和解析日期与时间 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
总结
本文详细介绍了Java编程中的常用类与对象操作,包括字符串操作、集合框架以及日期与时间处理。通过示例代码和表格总结,帮助您更好地理解和应用这些基础知识,提高编程效率和代码质量。

相关文章:
Java的核心类库
引言 在Java编程中,熟练掌握常用类与对象操作是开发的基础。Java的核心类库提供了丰富的功能,可以帮助开发者高效地处理各种编程任务。本文将详细介绍Java字符串操作、集合框架、日期与时间处理等内容,并通过图表和表格进行总结与示范。 字符…...
NSS题目练习9
[极客大挑战 2020]welcome 界面打开后一片空白,查看题目描述,翻译过来是 1.除了GET请求方法,还有一种常见的请求方法… 2.学习一些关于sha1和array的知识。 3.更仔细地检查phpinfo,你会发现标志在哪里。 补充: sh…...
JS 【算法】二分查找
使用场景 在有序数组中查找目标元素 const arr [1, 2, 3, 4, 5, 6, 7, 8, 9] const target 2 console.log(binarySearch1(arr, target)) console.log(binarySearch2(arr, target))循环实现 function binarySearch1(arr, target) {const length arr.lengthif (length 0) re…...
前端工程化工具系列(十四)—— Webpack(v5.91.0):应用模块打包器与构建工具
Webpack 是用于现代 JavaScript 应用程序的静态模块打包器。 当 webpack 处理应用程序时,它会在内部构建一个依赖关系图,该图映射项目所需的每个模块最终会生成一个或多个包。 1 概念 1.1 modules Webpack 中,无论是 JS 、CSS 还是图片等&…...
ThinkPHP+Bootstrap简约自适应网址导航网站源码
使用 ThinkPHPbootstrap 开发,后台采用全局 ajax 无刷新加载,前后台自适应,前台页面非常简洁适合自己收藏网站或做导航网站。 搭建教程: 1.整个主机 2.绑定解析域名 3.上传源码,解压 把解压出来的 nav.sql 文件导入数…...
Flutter 使用ffigen生成ffmpeg的dart接口
Flutter视频渲染系列 第一章 Android使用Texture渲染视频 第二章 Windows使用Texture渲染视频 第三章 Linux使用Texture渲染视频 第四章 全平台FFICustomPainter渲染视频 第五章 Windows使用Native窗口渲染视频 第六章 桌面端使用texture_rgba_renderer渲染视频 第七章 使用ff…...
(message): No CUDA toolset found.
解决方法: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\visual_studio_integration\MSBuildExtensions\ 下的4个文件 复制到 D:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\BuildCustomizations\下。…...
【python】邮箱正则验证
当然可以。以下是一个使用Python正则表达式的例子,用于检查一个字符串是否是一个有效的电子邮件地址: import re def is_valid_email(email):regex r^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\.[a-zA-Z]{2,}$return bool(re.match(regex, email)) # 测试电子邮件…...
深度学习(四)——torchvision中数据集的使用
1. 参数详解 torchvision中每个数据集的参数都是大同小异的,这里只介绍CIFAR10数据集 该数据集的数据格式为PIL格式 class torchvision.datasets.CIFAR10(root:str,train:boolTrue,transform:Optional[Callable]None,target_transform:Optional[Callable]None,do…...
【全开源】图书借阅管理系统源码(ThinkPHP+FastAdmin)
📚图书借阅管理系统:打造你的私人图书馆 一款基于ThinkPHPFastAdmin开发的简易图书借阅管理系统,一款轻量级的图书借阅管理系统,具有会员管理,图书管理,借阅及归还管理,会员充值等基本功能&…...
Mysql中使用where 1=1有什么问题吗
昨天偶然看见一篇文章,提到说如果在mysql查询语句中,使用where 11会有性能问题?? 这着实把我吸引了,因为我项目中就有不少同事,包括我自己也有这样写的。为了不给其他人挖坑,赶紧学习一下&…...
中心极限定理的MATLAB例
独立同分布的中心极限定理: 设 X 1 , X 2 , … , X n X_1, X_2, \ldots, X_n X1,X2,…,Xn 是独立同分布的随机变量序列,且 E ( X i ) μ E(X_i) \mu E(Xi)μ, D ( X i ) σ 2 > 0 D(X_i) \sigma^2 > 0 D(Xi)σ2>0&a…...
定义input_password函数,提示用户输入密码.如果用户输入长度<8,抛出异常,如果用户输入长度>=8,返回输入的密码
def input_password(password):str1passwordlen1len(str1)try:if len1<8:raise ValueError("密码长度不能小于8")else:return print(f"你的密码为:{password},请确认")except ValueError as e:print(f":Error is {e}")number1input("请…...
【深度学习】IP-Adapter 和 InstantID 的核心机制比较
IP-Adapter 和 InstantID 是两个在图像生成中具有不同优势和应用场景的模型。以下是这两个模型的区别及其理论分析。 IP-Adapter 特点: 图像提示能力: IP-Adapter 通过引入图像提示能力,使得预训练的文本到图像扩散模型可以接受图像作为提示,从而生成…...
JEPaaS 低代码平台 j_spring_security_check SQL注入漏洞复现
0x01 产品简介 JEPaaS是一款优秀的软件平台产品,可视化开发环境,低代码拖拽式配置开发,操作极其简单,可以帮助解决Java项目80%的重复工作,让开发更多关注业务逻辑,大大提高开发效率,能帮助公司大幅节省人力成本和时间成本,同时又不失灵活性。适用于搭建 OA、ERP、CRM、…...
天锐绿盾 | 无感知加密软件、透明加密系统、数据防泄漏软件
摘要:文件加密软件,包含禁止非授权的文件泄密和抄袭复制解决方案即使被复制泄密都是自动加密无法阅读,透明加密,反复制软件,内网监控,文件加密,网络安全方案,透明文件加密,加密文件,图纸加密,知识产权保护,加密数据; 通过绿盾信息安全管理软件,系统在不改…...
kubernetes(k8s)集群部署(2)
目录 k8s集群类型 k8s集群规划: 1.基础环境准备: (1)保证可以连接外网 (2)关闭禁用防火墙和selinux (3)同步阿里云服务器时间(达到集群之间时间同步) &…...
Git操作指南
1、提交代码操作 拉取线上分支,防止本地代码提交冲突 git pull origin dev git add . git commit -m “给本次提交添加注释” git push origin dev 2、打分支并切换分支 git checkout -b 新建并切换到新分支 切换到主分支 git checkout main git merge dev git p…...
全域推广和标准推广哪个更好。谁更容易获客?
随着全域概念的兴起,全域推广逐渐走进人们视野,并成为新的互联网热词。在此背景下,与全域推广相关的话题,如全域推广是什么及全域推广和标准推广的区别等成为了许多创业者讨论和搜索的对象。 所谓的全域推广,简单来说…...
首张地下地图!D-Wave 专用量子计算机助力沙特阿美完成地震成像
内容来源:量子前哨(ID:Qforepost) 文丨浪味仙 排版丨沛贤 深度好文:800字丨3分钟阅读 摘要:过去两年中,沙特阿美研究中心一直在使用总部在加拿大的D-Wave 公司的专用量子计算技术,…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
