拾光记录
218个文档 导航 作者 Gitee
随笔记录4
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置
前端知识4
基础知识17
Vue框架19
UniApp14
微信小程序1
Java编程6
Java基础15
SpringBoot31
SpringMVC18
MyBatis9
SpringCloud15
中间件2
数据库4
MySQL13
Redis8
MongoDB10
其他数据库1
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv管理工具
Linux12
Linux常用命令Jar启动脚本VirtualBox安装CentOSVirtualBox安装Ubuntu树莓派安装及使用frp内网穿透ArchLinux:基础系统安装ArchLInux:图形化界面安装ArchLinux:常用软件ArchLinux:深度优化ArchLinux:NiriArchLinux:模块记录
软件工具12
IDEAGitMavenGradleNginx安装Nginx配置JMeter压测OllamaRustFSPicGoVSCodeDocker
创意设计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类APISystem类APIRuntime类APIObject类APIBigInteger大整数BigDecimal精确计算时间相关