Java API (上)
java.lang.Math类
包含用于执行基本数字运算的方法。
| 方法名 | 描述 |
|---|---|
| abs(num) | 返回绝对值 |
| ceil(num) | 求大于num的最小整数 |
| floor(num) | 求小于num的最大整数 |
| round(decimal) | 返回小数四舍五入后的结果 |
| random() | 生成大于0.0小于1.0的随机值 |
备注:
- decimal:包含float类型和double类型。
- num:包含int、long、float、double 四种类型。
- 写在lang包中的类,无需导包、直接通过"类名.方法名"调用。
java.util.Arrays类
包含用于操作数组的各种方法。
| 方法名 | 描述 |
|---|---|
| toString(array) | 返回数组转为方便输出的字符串类型 |
| binarySearch(array, num) | 返回二分查找array中元素对应num的下标 |
| sort(array) | 返回升序排序后的array |
| copyOf(array,length) | 返回扩容后长度为length的array |
备注:
- array:包含int、double、float、long等类型的数组,详情见jdk11API
- num:包含char、int、double、float、long、byte、short、char 7中类型的数据。
- 非lang包中的类,需导包后才能通过"类名.方法名"调用。
java.math.BigDecimal
使用double、float进行小数运算会有误差,为此,Java提供BigDecimal类用于精确计算。
使用BigDecimal不能直接运算,需要创建多个对象、使用内置的方法进行运算。
案例如下:
BigDecimal bd1 = new BigDecimal("0.1");
BigDecimal bd2 = new BigDecimal("0.2");
BigDecimal bd3 = bd1.add(bd2);
System.out.println("bd1="+bd1+",bd2="+bd2+",bd3="+bd3);
//将BigDecimal对象转为Double类型
double d = bd3.doubleValue();
运行结果如下:
bd1=0.1,bd2=0.2,bd3=0.3
备注:
- 构造方法传入的参数是String类型
java.util.Date
该类中有很多方法已过时,目前适用于创建用于格式化的、当前日期的对象。
| 方法名 | 描述 |
|---|---|
| long getTime() | 返回格林乔治时间到现在时间的毫秒数 |
案例如下:
//创建当前日期的对象
Date date = new Date();
//返回格林乔治时间到现在时间的毫秒数
long time = date.getTime();
java.text.DateFormat
抽象类,常用它的子类对象自定义日期的格式化。
通常需要创建它的子类SimpleDateFormat对象进行实例化,在其构造方法中传入日期格式,格式对应字母含义如下:
| 字母 | 含义 |
|---|---|
| y | 年 |
| M | 月 |
| d | 日 |
| h | 时 |
| m | 分 |
| s | 秒 |
DateFormat常用方法如下:
| 方法 | 描述 |
|---|---|
| String format(Date date) | 返回将Date对象转为对应格式的日期字符串 |
| Date parse(String str) | 返回根据日期字符串转换的Date对象 |
| 案例如下: |
//创建Date对象
Date date = new Date();
//创建SimpleDateFormat对象,传入日期格式模板
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//将Date对象传入SimpleDateFormat对象的format方法,返回符合日期格式模板的字符串
String format = sdf.format(date);
System.out.println(format);
//使用parse方法将符合日期模板的日期字符串传入,返回Date对象
Date date2 = sdf.parse("2021-10-10 12:45:26");//需要抛出parseException异常
//通过format方法将Date对象转为符合日期模板格式的字符串
System.out.println(sdf.format(date2));
运行结果如下:
2021-10-10 12:53:10
2021-10-10 12:45:26
java.lang.Calendar
是一个抽象类,其子类用于创建日历对象,执行日期操作。
Calendar类常用方法如下:
| 方法 | 描述 |
|---|---|
| Date getTime() | 返回由Calendar对象转换的Date对象 |
| Calendar getInstance() | 返回实例对象 |
| int get(int key) | 返回当前对象的对应日期 |
| void set(int key,int value) | 设置当前对象的对应日期 |
| void add(int key,int amount) | 在当前对象日期基础上添加amount |
| int getActualMaximum(int key) | 返回当前对应key的最大值 |
Calendar类易错常量如下:
| 常量 | 描述 |
|---|---|
| MONTH | 月份,从0开始,0即1月 |
| DAY_OF_MONTH | 当前日历对象位于该月的第几天 |
| DAY_OF_YEAR | 当前日历对象位于该年的第几天 |
| JANUARY | 1月 |
| DAY_OF_WEEK | 当前日历对象位于一周的第几天,从1开始,1即周日 |
使用"类名.常量名"即可调用。
案例如下:
//创建Calendar对象
Calendar cal = Calendar.getInstance();
//得到当前年份
int year = cal.get(Calendar.YEAR);
//得到当前月份
int month = cal.get(Calendar.MONTH);
//得到当前为与星期几
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
//设置当前日份为16
cal.set(Calendar.DATE,16);
//获取当前月份最大天数
int max = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//当前日份减少6天
cal.add(Calendar.DATE,-6);
//转换为Date对象
Date date = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(date);
System.out.println("cal对象的日期:"+format);
System.out.println("cal对象所在月下标:"+month+",cal对象所在月的最大天数:"+max);
System.out.println("cal对象在星期几的下标:"+dayOfWeek);
System.out.println("cal对象所在年份"+year+",cal对象日期是所在年份的第几天:"+cal.get(Calendar.DAY_OF_YEAR));
备注:
- 月份中的0,代表1月,年份、日份中的1就是1。
- getActualMaximum(DAY_OF_MONTH)获取的是当前日历对象月份的最大天数。
- 周日在星期中排第一,即1是周日,周六是7。
java.lang.System
提供系统相关的属性和方法,都是静态修饰的。
| 常量 | 描述 |
|---|---|
| void exit(int status) | 终止运行,参数status表示状态码,非0表示异常终止 |
| void gc() | 运行垃圾回收器对垃圾进行回收 |
| long currentTimeMillis() | 返回当前时区的时间戳 |
| void arraycopy(Object src,int srcPos,Object dest,int destPos,int length) | 原数组src复制到目标数组dest,从指定位置开始到指定位置结束 |
arraycopy(Object src,int srcPos,Object dest,int destPos,int length)方法备注:
- src:表示源数组。
- dest:表示目标数组。
- srcPos:表示原数组中拷贝元素的起始位置。
- destPos:表示拷贝到目标数组的起始位置。
- length:表示拷贝元素个数。
重点对arraycopy进行演示:
int[] arr1 = {11,12,13,14,15,16,17};
int[] arr2 = {21,22,23,24,25,26,27};
System.arraycopy(arr1,2,arr2,3,4);
System.out.println(Arrays.toString(arr2));
运行结果如下:
[21, 22, 23, 13, 14, 15, 16]
浙公网安备 33010602011771号