Object类
toString()
返回该对象的字符串表示。
直接打印对象的名字其实就是调用toString方法
equals(Object obj)
指示其他某个对象是否与此对象“相等”。【boolean】。
基本数据类型:比较值
引用数据类型:地址值
默认比较地址,没有意义,所以重写,以比较对象属性
问题: 隐藏多态【无法使用子类特有的内容】
Object obj = new Person(“name”, 19)
所有,使用向下转型将OBJECT转型为person类(记得加上instanceof判断)
Objects类
提供了一些静态的使用方法,是null-save(空指针安全的)或者null-tolerant(容忍空指针的)
拥有与计算对象的hashcode,返回对象的字符串表示形式,比较两个对象
因为在比较两个对象时,object类容易抛出空指针异常
public static boolean equals(object a, object b)
Date类
Date()
表示分配它的时间(精确到毫秒)。
Date(long date)
表示自从标准基准时间即 1970 年 1 月 1 日 00:00:00 GMT以来的指定毫秒数。
getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
private static void demo1() {
Date date = new Date();
ong time = date.getTime();
System.out.println(time);
}
DateFormat类
是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间
java.text.DateFormat
public abstract class DateFormatextends Format
使用子类SimpleDateFormat
format(Date date)
将一个 Date 格式化为日期/时间字符串。
parse(String source)
从给定字符串的开始解析文本,以生成一个日期。
private static void demo1() {
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date date = new Date();
String dString = simpleDateFormat.format(date);
System.out.println(date);
System.out.println(dString);
//Tue Apr 14 20:10:36 CST 2020
//2020-04-14 20-10-36
}
private static void demo2() throws ParseException {
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date date = simpleDateFormat.parse("2020-04-14 19-57-56");
System.out.println(date);
//Tue Apr 14 19:57:56 CST 2020
}
练习,计算一个人出生了多少天
1.获取当前时间的毫秒值
2.获取自己出生日期对应的毫秒值
3.相减
private static void demo1() throws ParseException {
System.out.println("input your birthday yyyy-MM-dd");
Scanner sc = new Scanner(System.in);
String birth_dateString = sc.next();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(birth_dateString);
long dd = d.getTime();
Date date = new Date();
long d_ = date.getTime();
long ans = d_ - dd;
long day = ans/(1000*60*60*24);
System.out.println("you have born " + day + " days");
}
Calender类 【抽象类】
无法直接创建对象使用,但有一个getInstance方法,返回子类对象
Calendar calendar = Calendar.getInstance();
常用方法
int get(int filed):返回给定日历字段的值
void set(int filed , int value):将给定的日历字段值设置为给定值
abstract void add(int filed, int amout:添加或减去指定时间量)
Date getTime() :返回一个表示此calender时间值的date对象
public class DemoCalender {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(DAY_OF_MONTH);
calendar.set(calendar.YEAR, 9999);
calendar.add(calendar.YEAR, 2);
int year = calendar.get(calendar.YEAR);
calendar.add(calendar.DAY_OF_MONTH, -12);
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year);
System.out.println(day);
Date date = calendar.getTime();
System.out.println(date);
}
}
输出
14
10001
2
Mon Apr 02 20:52:10 CST 10001
system 类
currentTimeMillis()
返回以毫秒为单位的当前时间。
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
练习:将【1,2,3,4,5】前三个数字复制到【6,7,8,9,10】,结果【1,2,3,9,10】
public class SystemDemo {
public static void main(String[] args) {
int[] src = {1,2,3,4,5};
int[] det = {6,7,8,9,10};
System.arraycopy(src, 0, det, 0, 3);
System.out.println(Arrays.toString(det));
}
}