Java常用类小结
对象方法都可以从API上面找:
- 内部类:在一个类的内部再定义一个完整的类。分为四种:成员内部类、静态内部类、局部内部类、匿名内部类。
- Object类:所有类的直接或间接父类,可存储任何对象。
- 包装类:基本数据类型所对应的引用数据类型,可以使Object统一所有数据。
- String类:字符串是常量,创建之后不可改变,字面值保存在字符串池中,可以共享。
- BigDecimal:可精确计算浮点数。
- Date:特定时间。
- Calendar:日历
- SimpleDateFormat:格式化时间
- System:系统类
BigDecimal类:精确计算浮点数
- 很多实际应用中需要精确运算,而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 d1 = 1.9;
double d2 = 0.9;
System.out.println(d1-d2);
BigDecimal b1 = new BigDecimal("1.1");
BigDecimal b2 = new BigDecimal("0.2");
System.out.println(b1);
System.out.println(b2);
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"), 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);
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.getTime());
System.out.println("get获取时间:");
int year = c1.get(Calendar.YEAR);
System.out.println(year);
System.out.println(c1.get(Calendar.MONTH));
System.out.println(c1.get(Calendar.DAY_OF_MONTH));
System.out.println(c1.get(Calendar.HOUR));
System.out.println(c1.get(Calendar.MINUTE));
System.out.println(c1.get(Calendar.SECOND));
System.out.println("修改时间:");
Calendar c2 = Calendar.getInstance();
c2.set(Calendar.YEAR, 2008);
System.out.println(c2.getTime().toLocaleString());
c2.add(Calendar.YEAR, 2);
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);
Date d2 = s1.parse("2020/05/20");
System.out.println(d2);
}
}
System类:系统
System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的。 System.currentTimeMillis(); 获取时间方法可用于计算程序速率(结束时间-开始时间),在(十八)可变长字符串中使用过。 System.gc(); 回收垃圾方法在(十六)finalize()方法回收中使用过。
package classs;
public class SystemText {
public static void main(String[] args) {
System.out.println("arraycopy数组的复制");
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<dest.length; i++) {
System.out.println(dest[i]);
}
System.exit(0);
System.out.println("结束");
}
}
|