Math
math类包含用于执行基本数学运算的方法,如初等函数、对数、平方根和三角函数
常用方法:
Arrays类:
Arrays里面包含了 一系列静态方法,用于管理或操作数组
1.toString返回数组的字符串形式 Arrays.toString(arr)
2.sort排序
3.binarySearch通过二分搜素法进行查找,要求必须排好序
4.copyOf数组元素的复制
5.fill数组元素的填充
6.equals比较两个数组元素内容是否完全一致
7.asList将一组值转换成list
System类:
1.exit退出当前程序
2.arraycopy:复制数组元素,比较适合底层调用,一般使用Arrays.copyOf完成复制数组
int[] src={1,2,3}
int[] dest = new int[3]
System.out.println(src,0,dest,0,3);
3.currentTimeMillens:返回当前时间距离1970-1-1的毫秒数
4.gc:运行垃圾回收机制 System.gc();
BigInteger和BigDecimal类:
1.BigInteger适合保存比较大的整形
2.BigDecimal适合保存精度更高的浮点型
(1)add (2)subtract (3)multiply (4)divide
高精度除法时可能除不尽 ,会报异常:BigDecimal.ROUND_CEILING指定精度,保留分子的精度
日期类:
第一代:
1.Date:精确到毫秒,代表特定的时间
2.SimpleDateFormat:格式和解析日期的类
SimpleDateFormat格式化和解析日期的具体类。它允许进行格式化(日期->文本)、解析(文本->日期)和规范化
Date d1 = new Date();//获取当前系统时间
Date d2 = new Date(12345);//通过指定毫秒数得到时间
System.out.println(d1.getTime());//获取某个时间对应的毫秒数
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
String format = sdf.format(d1);
//把一个格式化的String 转换成对应Date
String s = "1997年01月02日 10:20:00 星期一" //格式要和sdf相同,否则会有异常
Date parse = sdf.parse(s);//会有一个转换异常 抛出即可
System.out.println("parse = "+parse);
第二代:
Calendar类:
是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法
//1.Calendar的构造器是一个private
//2.可以通过getInstance()获取实例
Calendar c = Calendar.getInstance();
System.ou.print("年"+c.get(Calendar.YEAR));
System.ou.print("月"+(c.get(Calendar.MONTH)+1));//因为月是从零开始编号,所以要加1
System.ou.print("日"+c.get(Calendar.DAY_OF_MONTH));
System.ou.print("时"+c.get(Calendar.HOUR));//HOUR_OF_DAY为24小时制
System.ou.print("分"+c.get(Calendar.MINUTE));
System.ou.print("秒"+c.get(Calendar.SECOND));
第三代
JDK1.0中包含了一个java.util.Date类,但是它的大多数方法已经在JDK1.1引入Calendar类之后就被弃用了。而Calendar也存在问题是:
1)可变性:像日期和时间这样的类应该是不可变的
2)偏移性:Date中的年份是从1900开始的,而月份都是从0开始的
3)格式化:格式化只对Date有用,对Calendar没用
4)此外,他们也 不是线程安全的;不能处理闰秒等(每隔两天,多出1S)
第三代日期类常用方法
1)LocalDate(年月日)、LocalTime(时分秒)、LocalDateTime(年月日时分秒)-------JDK8加入的
LocalDateTime ldt = LocalDateTime.now();//返回当前时间的对象
ldt.getYear();
ldt.getMonthValue();
ldt.getMonth(); //英文月份
ldt.getDayOfMonth(); //返回月份数字
ldt.getHour();
ldt.getMinute();
ldt.getSecond();
2)DateTimeFormatter格式日期类
类似于SimpleDateFormat
DateTimeFormatter dtf = DateTimeFormatter.ofPattern();
String str = dtf.format(日期对象);
LocalDateTime ldt = LocalDateTime.now();
//使用DateTimeFormatter对象进行格式
//创建DateTimeFormatter对象
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(yyyy年MM月dd日 HH时mm分ss秒);
String format = dtf.format(ldt);
3)时间戳
类似于Date,提供了 一系列和Date类转换的方式
//Instant ----------》Date:
//Date date = Date.from(instant);
//Date ----------》Instant:
//Instant instant = date.toInstant();
//例如
Instant now = Instant.now();
Date date = Date.from(now);
Instant instant = date.toInstant();