Java核心类——9.常用工具类
Java常用工具类
Java的核心库提供了大量的现成的类供我们使用。本节将总结几个常用的工具类。
一、基础计算工具类
1. Math类
Math类包含一系列静态方法,无需实例化即可直接调用,满足日常数学计算需求。(注:包含在java.lang包中,因此在编写Java程序时无需显式导入Math类)
- 基础运算
Math.abs(x):返回x的绝对值(支持整数、浮点数)。Math.max(a, b)/Math.min(a, b):返回两个数的最大值/最小值。Math.pow(x, y):计算x的y次方(如Math.pow(2, 3)返回8.0)。Math.sqrt(x):计算x的平方根(如Math.sqrt(25)返回5.0)。
- 高级点的运算
Math.exp(x):计算e的x次方Math.log(x):计算以e为底的对数Math.log10(x):计算以10为底的对数Math.sin(rad)/Math.cos(rad):计算正弦/余弦值(参数为弧度)。Math.random():生成[0, 1)的随机浮点数。
- 常量:
Math.PI(圆周率≈3.14159)、Math.E(自然常数≈2.71828)。
2. java.util.HexFormat类
Java 17引入的HexFormat类能够将基本类型、字节数组或字符数组转换为十六进制字符串,反之亦然(HexFormat是线程安全的,可以在多个线程中使用)。
- 字节数组→十六进制字符串:
hf.formatHex(byte[])HexFormat hf = HexFormat.of();//创建HexFormat
String hex = hf.formatHex("test".getBytes()); // 输出"74657374"
- 十六进制字符串→字节数组:
hf.parseHex(String)byte[] bytes = hf.parseHex("74657374"); // 得到"test"的字节数组
- 定制格式:
HexFormat.ofDelimiter(":")(添加冒号分隔符)、HexFormat.of().withUpperCase()(创建默认产生大写十六进制值的HexFormat,HexFormat的默认行为是产生小写十六进制值)。
3. Random与SecureRandom:随机数生成
- Random:生成伪随机数,相同种子产生相同序列。
Random r = new Random(100); // 指定种子
r.nextInt(10); // 生成[0,10)的整数
r.nextDouble(); // 生成[0,1)的双精度数
- SecureRandom:用于安全场景(如加密、令牌生成),基于系统随机源生成不可预测的随机数。
SecureRandom sr = SecureRandom.getInstanceStrong();
byte[] key = new byte[16];
sr.nextBytes(key); // 生成16字节的安全随机数
二、时间工具类java.time
Java 8引入的java.time包解决了传统时间类的线程安全问题,提供了清晰的时间处理API。
1. LocalDate:日期(年/月/日)处理
now():获取当前日期(如LocalDate.now()返回2025-08-15)。of(int year, int month, int day):创建指定日期(如LocalDate.of(2024, 12, 31))。plusYears(n)/minusMonths(n):增加/减少年/月(返回新对象,原对象不变)。getYear()/getMonthValue()/getDayOfWeek():获取年/月(1-12)/星期(1=周一,7=周日)。
2. LocalTime:时间(时/分/秒)处理
now():获取当前时间(如LocalTime.now()返回15:30:45.123)。of(int hour, int minute, int second):创建指定时间(如LocalTime.of(8, 30, 0))。plusHours(n)/minusMinutes(n):增加/减少小时/分钟。getHour()/getMinute():获取时/分。
3. LocalDateTime:日期+时间组合
now():获取当前日期时间(如2025-08-15T15:35:20)。of(LocalDate, LocalTime):组合日期和时间(如LocalDateTime.of(ld, lt))。format(DateTimeFormatter):格式化输出(如yyyy-MM-dd HH:mm:ss)。parse(String, DateTimeFormatter):从字符串解析(如LocalDateTime.parse("2024-01-01 12:00:00", formatter))。
4. DateTimeFormatter:时间格式化
ofPattern(String):自定义格式(如DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm"))。- 内置格式:
ISO_LOCAL_DATE(yyyy-MM-dd)、ISO_LOCAL_TIME(HH:mm:ss)等。
Java核心类——9.常用工具类的更多相关文章
- Java项目案例之---常用工具类练习
常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...
- 最全面的Java字节byte操作,处理Java基本数据的转换及进制转换操作工具,流媒体及java底层开发项目常用工具类
前言:用于处理Java基本数据的转换及进制转换操作工具 一.实现功能 1.int与byte互转 2.int与byte[]互转 3.short与byte互转 4.short与byte[]互转 5.16位 ...
- 廖雪峰Java2面向对象编程-6Java核心类-6常用工具类
1.Math Math提供了数学计算的静态方法 序号 方法 描述 1 abs() 返回参数的绝对值.Math.abs(-9)//9 2 ceil() 返回大于等于( >= )给定参数的的最小整数 ...
- (转)JAVA 十六个常用工具类
一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流.socket.或者selector且不抛出异常.通常放在finally块 toString ...
- JAVA常用工具类汇总
一.功能方法目录清单: 1.getString(String sSource)的功能是判断参数是否为空,为空返回"",否则返回其值: 2.getString(int iSource ...
- JavaEE-实验一 Java常用工具类编程
该博客仅专为我的小伙伴提供参考而附加,没空加上代码具体解析,望各位谅解 1. 使用类String类的分割split 将字符串 “Solutions to selected exercises ca ...
- 简单了解Spring中常用工具类_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 文件资源操作 Spring 定义了一个 org.springframework.core.io.Resource 接口, ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
- 项目经验分享——Java常用工具类集合 转
http://blog.csdn.net/xyw591238/article/details/51678525 写在前面 本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数 ...
- Java常用工具类之删除文件
package com.wazn.learn.util; import java.io.File; /** * 删除文件工具类 * @author yangzhenyu * */ public cla ...
随机推荐
- 【非对称加密】详解及Java实现
非对称加密详解及Java实现 一.非对称加密概述 非对称加密(Asymmetric Cryptography),也称为公钥加密,是一种使用一对密钥(公钥和私钥)进行加密和解密的加密方法.它与对称加密的 ...
- 关于Django项目集成Xadmin后,出现服务异常解决方案
Django项目集成Xadmin后,偶尔出现页面不能访问,重启服务也不行,如果是Nginx部署直接报504等错误. 解决方案: 在项目中的静态文件中找到:bootstrap-clockpicker.j ...
- 在idea里面如何配置自己的tomcat
第一:到官网上去下载自己电脑对应的tomcat版本 第二:下载后解压 在bin目录里面找到: 双击打开是不是会出现: 然后再在bin里面找到:shutdown.bat 双击给他关闭了 第三:在我的电脑 ...
- Linux系统分析常用指令
一.查看CPU 1.top命令 1.1 功能说明 top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况. 1.2 使用语法 top [-d num ...
- AOP的介绍以及在springboot中的简单使用
Aop Aop的介绍 什么是Aop Aop面向切面编程,是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行 ...
- Visual Studio 2022 中的 EF Core 反向工程和模型可视化扩展插件
前言 在 EF 6 及其之前的版本数据库优先模式(Database First)是可以在 Visual Studio 中通过可视化界面来操作完成的,但是到了 EF Core 之后就不再支持了(因为模型 ...
- 直播预约丨《袋鼠云大数据实操指南》No.3:数据资产管理实操,如何有效进行数据治理
近年来,新质生产力.数据要素及数据资产入表等新兴概念犹如一股强劲的浪潮,持续冲击并革新着企业数字化转型的观念视野,昭示着一个以数据为核心驱动力的新时代正稳步启幕. 面对这些引领经济转型的新兴概念,为了 ...
- pg 批量更改拥有者
记录一下. 为什么会有这个问题的原因是因为执行用的是管理员用户,pg默认拥有者是执行sql的用户也就是管理员,这样会导致创建的用户会没有这个表的权限 查询出sql语句复制直接执行就行 SELECT ' ...
- java PriorityQueueTest.java
简介 优先级队列内部采用大顶堆或者小顶堆实现 code import java.util.*; import java.time.*; public class PriorityQueueTest { ...
- 3.1k star!推荐一款开源基于AI实现的浏览器自动化插件工具 !
大家好!今天,我要给大家介绍一款超实用的开源工具--Chrome MCP Server!这款工具不仅能大幅提升我们的工作效率,还能让AI助手(如Claude)直接操控浏览器,实现自动化操作.内容分析等 ...