经常使用的系统类Math、Arrays、System、BigInteger和BigDecimal以及日期类,时间戳

一、Math

常用类:

//看看Math常用的方法(静态方法)
//1.abs绝对值
int abs = Math . abs(-9);
System. out . printLn(abs);//9
//2.pow 求幂
doubLe pow = Math.pow(2, 4);
System. out . printLn(pow);//16
//3.ceil向上取整,返回>=该参数的最小整数(转成Double类型);
double ceil = Math. ceil(-3.0001) ;
System. out. printLn(ceil);//-3
//4.floor向下取整,返回<=该参数的最大整数
double fLoor = Math. floor(-4.999);
System. out. printLn(floor);//-5
//5.round 四舍五入Math. floor(该参数+0.5)
Long round = Math . round(-5.001) ;
System. out. printLn(round);//-5
//6.sqrt 求开方
double sqrt = Math. sqrt(9.0);

System. out。printLn(sqrt);//3.0

//7.生成随机数 random():返回值是[0.1)之间的的数;

//8.比较得到两个数的最大值和最小值

//Math.max(23,45);//45

//Math.min(12,23);//12

二、Arrays

Arrays里面包含了系列静态方法, 用于管理或操作数组(比如排序和搜索)。
1) toString返回数组的字符串形式
Arrays.toString(arr)
2) sort排序(自然排序和定制排序)
自然排序:从小到大:Integer arr[] = {1,-1, 7, 0, 89};

Arrays.sort(arr);

定制排序:可通过自定义的内部匿名类实现从大到小排序;

(1).可以直接使用冒泡排序,也可以直接使用Arrays提供的sort方法排序
(2).因为数组是引用类型,所以通过sort排序后,会直接影响到实参arr
(3). sort重载的,也可以通过传入一个接口Comparator 实现定制排序
(4).调用定制排序时,传入两个参数

  (4.1) 排序的数组arr
  (4.2)实现了Comparator接口的匿名内部类,
要求实现
compare方法

 

 

 在底层对内部匿名类进行调用:

 

 

 


3) binarySearch通过二分搜索法进行查找,要求必须排好序
int index = Arrays.binarySearch(arr, 3);

 

 4)copyOf的使用

 

复制整个数组

 

 

 5)fill数组元素的填充

 

 6)equals比较两个数组:元素相同返回true,反之false

 7)将一个数组转换为一个列表

 

 

 

运行结果:

 三、System

1、System类常见方法和案例

 

 (1)Sysout.exit(0);正常退出程序,0表示一个正常的状态,一般退出都用0

(2)System.arraycopy(src,0,dest,0,3);

 

 src和dest是自己定义出来的列表;

 

 (3)system.currentTimeMillens ():返回当前时间距离1970-1-1 的毫秒数

四、BigInteger和BigDecimal

1、应用场景:

1) BigInteger适合保存比较大的整型
2) BigDecimal适合保存精度更高的浮点型(小数)

大数的初始化和运算:

 

 高精度浮点数

 

 五、日期类

Date:经过发展,目前的类已经到达第三代

第一代:

 

 获取系统默认时间

 

 对时间进行格式化;

 

 第二代:Calender

Calender的实现和继承

 

 非常的灵活,Calender提供的属性选择非常的多,可以选择自己想要的格式输出:

 

 第三代:

 出现第三代日期类的分析:

 

1) LocalDate(日期/年月日)、LocalTime(时间/时分秒)、LocalDateTime(日期时
间/年月日时分秒) JDK8加入

LocalDate只包含日期,可以获取日期字段
LocalTime只包含时间,可以获取时间字段
LocalDateTime包含日期+时间,可以获取日期和时间字段

实现的类和继承的类:

 

 

 常用方法和使用的类型

 

 

 2)DateTrimeFormatter格式日期类(类似于:SimpleDateFormat)

Date TimeFormat dtf = Date TimeFormatter.ofPattern(格式);
String str = dtf.format(日期对象);

更多的方法

LocalDateTime类
MonthDay类:检查重复事件
是否是闰年
增加日期的某个部分
使用plus方法测试增加时间的某个部分
使用minus方法测试查看一年前和一年后的日期

 

3)Instant:时间戳 

 

 

 案例使用细节  

 

 

  

复制代码
 3 import java.text.SimpleDateFormat;
 4 import java.time.Instant;
 5 import java.util.Date;
 6 
 7 public class Date_ {
 8     public static void main(String[] args) {
 9 
10         //生成一个Instant时间戳
11         Instant now = Instant.now();
12         System.out.println(now);
13 
14         //将Instant时间戳转换为Date格式
15         Date date = Date.from(now);
16         System.out.println(date);
17 
18         //将Date的时间类型进行格式化
19         SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");
20         String format1 = format.format(date);
21         System.out.println(format1);
22 
23         //将Date类型的时间转换为Instant时间戳
24         Instant instant = date.toInstant();
25         System.out.println(instant);
26 
27     }
28 }
复制代码

运行的结果:

 

posted @   代码红了一大片  阅读(132)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示