- Java常用类小结
- BigDecimal类:精确计算浮点数
- Date类:特定时间
- Calendar类:日历
- SimpleDateFormat类:格式化时间
- System类:系统
- 内部类:在一个类的内部再定义一个完整的类。分为四种:成员内部类、静态内部类、局部内部类、匿名内部类。
- Object类:所有类的直接或间接父类,可存储任何对象。
- 包装类:基本数据类型所对应的引用数据类型,可以使Object统一所有数据。
- String类:字符串是常量,创建之后不可改变,字面值保存在字符串池中,可以共享。
- BigDecimal:可精确计算浮点数。
- Date:特定时间。
- Calendar:日历
- SimpleDateFormat:格式化时间
- System:系统类
- 很多实际应用中需要精确运算,而double是近似值存储,不在符合要求,需要借助BlgDecimal。
- 位置:java.math包中。
- 作用:精确计算浮点数。
- 创建方式:BigDecimal bd=new BigDecimal("1.0");。【一定要用引号,不然和double一样近似值存储】
- 方法:
(1)BigDecimal add(BigDecimal bd)加
(2)BigDecimal subtract(BigDecimal bd)减
(3)BigDecimal multiply(BigDecimal bd)乘
(4)BigDecimal divide(BigDecimal bd)除
除法: divide(BigDecimal bd,int scal, RoupdingMode mode)
参数scal:指定精确到小数点后几位。
参数model:指定小数部分的取舍模式,通常采用四舍五入的模式。取值为BigDecimal.ROUND_HALF_UP。
package classs; import java.math.BigDecimal; public class BigDecimalText { public static void main(String[] args) { //double近似值存储 double d1 = 1.9; double d2 = 0.9; System.out.println(d1-d2);//0.9999999999999999 //BigDecimal高精度运算 BigDecimal b1 = new BigDecimal("1.1"); BigDecimal b2 = new BigDecimal("0.2"); System.out.println(b1); System.out.println(b2); //加减乘除运算,均返回BigDecimal对象 BigDecimal ad = b1.add(b2); System.out.println(ad); System.out.println(b1.subtract(b2)); System.out.println(b1.multiply(b2)); System.out.println(b1.divide(b2)); //能都整除可以直接除 //除法测试:不能整除需要限定精度和舍入制度 //System.out.println(new BigDecimal("10").divide(new BigDecimal("3")));//编译报错 System.out.println(new BigDecimal("10"). divide(new BigDecimal("3"), 3, BigDecimal.ROUND_HALF_UP)); } }Date类:特定时间
- Date表示特定的瞬间,精确到毫秒。
Date类中的大部分方法都已经被Calendar类中的方法所取代。但是过时的方法还是可以用。 - 时间单位:
1秒=1000毫秒
1毫秒=1000微秒
1微秒=1000纳秒 - 构造方法:new
Date() :分配一个 Date对象并将它初始化,它代表的时间分配给它,测量精确到毫秒。
Date(long date) :分配一个 Date对象并将它初始化为代表指定的毫秒数自基准时间被称为“时代”,即1970年1月1日,00:00:00 GMT。 - 对象方法:
long getTime() :返回毫秒数自1970年1月1日以来,该 Date对象表示00:00:00 GMT。
boolean after(Date when) :测试如果这个日期是在指定日期之后。 同样的还有after、equals。
int compareTo(Date anotherDate) :比较两个日期。 d1.compareTo(d2);d1后返回正值,相等返回0,提前返回负值。
package classs; import java.util.Date; public class DateText { public static void main(String[] args) { Date d1 = new Date(); //默认构造今天 System.out.println(d1); //运行结果同(d1.toString() System.out.println(d1.toLocaleString());//过时方法,仍然可用 Date d2 = new Date(d1.getTime()-(60*60*24*1000));//通过毫秒数,修改为昨天 System.out.println(d2.toLocaleString()); //比较日期 System.out.println(d1.after(d2)); System.out.println(d1.equals(d2)); System.out.println(d1.before(d2)); System.out.println(d1.compareTo(d2)); } }Calendar类:日历
- Calendar提供了获取或设置各种日历字段的方法。
- 构造方法:protected Calendar() 由于修饰符是protected,所以无法直接创建该对象。
- 其他方法:
package classs; import java.util.Calendar; public class CalendarText { public static void main(String[] args) { Calendar c1 = Calendar.getInstance();//不能直接创建对象 //System.out.println(c1);//可以直接打印,长的很 System.out.println(c1.getTime());//返回Date对象表示时间 //get获取年、月、日.. System.out.println("get获取时间:"); int year = c1.get(Calendar.YEAR); System.out.println(year); System.out.println(c1.get(Calendar.MONTH));//0-11 System.out.println(c1.get(Calendar.DAY_OF_MONTH)); System.out.println(c1.get(Calendar.HOUR));//12小时,还有一个是24小时 System.out.println(c1.get(Calendar.MINUTE)); System.out.println(c1.get(Calendar.SECOND)); //修改时间 System.out.println("修改时间:"); Calendar c2 = Calendar.getInstance();//set方法修改时间 c2.set(Calendar.YEAR, 2008); System.out.println(c2.getTime().toLocaleString()); c2.add(Calendar.YEAR, 2);//add方法修改时间按 System.out.println(c2.getTime().toLocaleString()); //获取时间常量上下线 System.out.println("Calendar.MONTH范围:"); System.out.println(c2.getActualMaximum(Calendar.MONTH)); System.out.println(c2.getActualMinimum(Calendar.MONTH)); } }SimpleDateFormat类:格式化时间
- SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。
- 进行格式化Date.format(Simple)(日期→文本)、解析Simple.parse("2020/05/20")(文本→日期)。
- 常用的时间模式字母
package classs; import java.text.SimpleDateFormat; import java.util.Date; public class DateFormatText { public static void main(String[] args) throws Throwable { //先创建一个对象 SimpleDateFormat s1 = new SimpleDateFormat("yyyy/MM/dd"); Date d1 = new Date(); //格式化:日期→文本 String str = s1.format(d1); System.out.println(str);//2021/10/17 //解析:文本→日期 Date d2 = s1.parse("2020/05/20"); System.out.println(d2);//Wed May 20 00:00:00 GMT+08:00 2020 } }System类:系统
System系统类,主要用于获取系统的属性数据和其他 *** 作,构造方法私有的。
System.currentTimeMillis();获取时间方法可用于计算程序速率(结束时间-开始时间),在(十八)可变长字符串中使用过。
System.gc();回收垃圾方法在(十六)finalize()方法回收中使用过。
package classs; public class SystemText { public static void main(String[] args) { System.out.println("arraycopy数组的复制"); //参数src源数组;srcPos从哪个位置开始复制; dest目标数组;destPos目标数组的位置;length复制的长度 int[] arr = {1,2,3,4,5,6,7,8}; int[] dest = new int[8]; System.arraycopy(arr, 0, dest, 2, 4); for(int i=0; i欢迎分享,转载请注明来源:内存溢出
评论列表(0条)