logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔4
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置
前端编程3
前端基础知识16
UniApp15
Vue框架19
Java编程7
Java基础知识14
SpringBoot31
SpringMVC14
MyBatis8
SpringCloud15
RocketMQ1
MyCat1
数据库4
MySQL6
Redis7
MongoDB10
H21
Java技术栈4
知识整理分布式锁的实现方案MySQL事务MySQL的锁
软件工具箱14
IDEAGitMavenGradleNginx安装Nginx配置JMeter压测OllamaPicGoRustFSVSCodeDockerObsidianObs录制
Linux知识11
树莓派安装及使用ArchLinux:常用软件ArchLinux:基础系统安装ArchLinux:深度优化ArchLInux:图形化界面安装ArchLinux:Nirifrp内网穿透Jar启动脚本Linux常用命令VirtualBox安装CentOSVirtualBox安装Ubuntu
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv
创意设计2
Blender:入门知识UI设计基础知识
AI相关9
Claude CodeHermes AgentOpenAI基本使用OpenAI工具调用OpenAI记忆管理OpenAI推理执行OpenAI开发框架Langchainllama.cpp

Math类API

方法 说明
abs 获取绝对值
ceil 向上取整
floor 向下取整
round 四舍五入
max 最大值
pow 幂计算
random 随机值,范围[0,1)

System类API

方法 说明
exit 终止当前运行的虚拟机
currentTimeMillis 当前系统时间戳
arraycopy 数组拷贝

Runtime类API

方法 说明
getRuntime 当前系统的运行环境对象
exit 停止虚拟机
availableProcessors 获得CPU的线程数
maxMemory JVM能从系统中获取总内存大小(单位byte)
totalMemory JVM已经从系统中获取内存大小(单位byte)
freeMemory JVM剩余内存大小(单位byte)
exec 运行cmd命令

Object类API

方法 说明
toString 返回对象的字符串表示形式
equals 比较两个对象是否相等
clone 对象克隆

如果一个接口里面没有抽象方法,表示当前的接口是一个标记接口。如果Cloneable被实现,那么当前类的对象可以被克隆,否则不能被克隆

克隆步骤:

浅拷贝与深拷贝:

BigInteger大整数

BigInteger.valueOf(1);
new BigInteger("整数");

对于-16~16,BigInteger已经提前创建,该范围的对象创建都是同一个,其余才会重新创建,而BigInteger的任何计算操作都是产生一个新的对象

方法 说明
add
subtract
multiply
divide 取整
divideAndRemainder 取余
equals 相等(已重写)
max 最大
min 最小
pow
intValue 转int整数
longValue 转long整数

BigDecimal精确计算

0-10已经创建好

new BigDecimal("2.35").setScale(1, BigDecimal.ROUND_HALF_UP);

时间相关

格林尼治时间(Greenwich Mean Time)简称GMT,目前世界标准时间(UTC)已经替换为原子钟,中国属于地球东八区,所以是世界标准世界+8小时

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(new Date());

new SimpleDateFormat("HH:mm:ss").parse("09:00:00");
字母 说明
G Era标识符
y
M 年中的月份
w 年中的周数
W 月份中的周数
D 年中的天数
d 月份中的天数
F 月份中的星期
E 星期中的天数
a AM/PM标记
H 一天中的小时数(0-23)
k 一天中的小时数(1-24)
K AM/PM中的小时数(0-11)
h AM/PM中的小时数(1-12)
m 小时中的分钟数
s 分钟中的秒数
S 毫秒数
z 时区
Z 时区

Calendar日历类:是个抽象类,无法直接创建对象

public static Calendar getInstance()
方法 说明
public final Date getTime() 获取日期对象
public final setTime(Date date) 给日历设置日期
public long getTimeInMillis() 获取时间毫秒值
public void setTimeInMillis() 给日历设置毫秒值
public int get(int field) 取日历中的某个字段信息
public void set(int field, int valur) 修改日历的某个字段信息
public void add(int field, int amount) 为某个字段增加/减少指定的值

注意:月份从0开始,而星期一实际为星期日

Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);

JDK8为何新增时间类?

          ZoneId:时区
        /
       /
Date类 -- Instant:时间戳(世界标准世界)
       \
        \
          ZonedDateTime:带时区的时间

日期格式化类 -- DateTimeFormatter:用于时间的格式化和解析

          LocalDate:年、月、日
        /  
       /
日历类 -- LocalTime:时、分、秒
       \
        \
          LocalDateTime:年、月、日、时、分、秒

          Duration:时间间隔(秒、纳秒)
        /
       /
工具类 -- Period:时间间隔(年、月、日)
       \
        \
          ChronoUnit:时间间隔(所有单位)

格式化示例

ZonedDateTime zoneTime = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss EE a");
System.out.println(dtf.format(zoneTime)); // 2023-02-23 11:05:11 星期四 上午

时间间隔工具示例

LocalDateTime now = LocalDateTime.now();
LocalDateTime time = LocalDateTime.of(2022, 1, 1, 0, 0, 0, 0);
long between = ChronoUnit.DAYS.between(time, now);
Math类API
System类API
Runtime类API
Object类API
BigInteger大整数
BigDecimal精确计算
时间相关