目录
思维导图
Object类
类 Object 是类层次结构的根(父)类。
每个类(Person,Student...)都使用 Object 作为超(父)类。
所有对象(包括数组)都实现这个类的方法。
- public String toString() :返回该对象的字符串表示。
toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。 由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因 此也需要重写它。
看一个类是否重写了toString,直接打印这个类的对象即可,如果没有重写toString方法那么打印的是对象的地址值
重写toString方法:
- public boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”
默认比较的是如果没有覆盖重写equals方法,
默认比较的是对象的地址,只要不是同一个对象,结果 必然为false。
重写equale方法:
- Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题。
public static boolean equals(Object a, Object b) : 判断两个对象是否相等
java.util.Date类
- public Date() :分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
- public Date(long date) :分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元 (epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。 (东八区,我们的基准时间为1970年1月1日8时0分0秒。)
- public long getTime(): 把日期对象转换成对应的时间毫秒值。
java.text.DateFormat类
DateFormat为抽象类,不能直接使用,常用的子类 java.text.SimpleDateFormat类。
- public SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
- public String format(Date date) :将Date对象格式化为字符串。
- public Date parse(String source) :将字符串解析为Date对象。
栗子:计算出一个人已经出生了多少天
public static void function() throws Exception {
System.out.println("请输入出生日期 格式 YYYY‐MM‐dd");
// 获取出生日期,键盘输入
String birthdayString = new Scanner(System.in).next();
// 将字符串日期,转成Date对象
// 创建SimpleDateFormat对象,写日期模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy‐MM‐dd");
// 调用方法parse,字符串转成日期对象
Date birthdayDate = sdf.parse(birthdayString);
// 获取今天的日期对象
Date todayDate = new Date();
// 将两个日期转成毫秒值,Date类的方法getTime
long birthdaySecond = birthdayDate.getTime();
long todaySecond = todayDate.getTime();
long secone = todaySecond‐birthdaySecond;
if (secone < 0){
System.out.println("还没出生呢");
}
else { System.out.println(secone/1000/60/60/24);
}
}
java.util.Calendar类
Calendar也是抽象类,可以利用其静态方法:
- public static Calendar getInstance() :使用默认时区和语言环境获得一个日历
常用方法:
- public int get(int field) :返回给定日历字段的值。
- -public void set(int field, int value) :将给定的日历字段设置为给定值。
- public abstract void add(int field, int amount) :根据日历的规则,为给定的日历字段添加或减去指 定的时间量。
- public Date getTime() :返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
栗子:
Calendar cal = Calendar.getInstance();
System.out.print(year + "年" + month + "月" + dayOfMonth + "日"); // 2018年1月17日
// 使用add方法
cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
cal.add(Calendar.YEAR, ‐3); // 减3年
System.out.print(year + "年" + month + "月" + dayOfMonth + "日"); // 2015年1月18日;
Date date = cal.getTime();
System.out.println(date); // Tue Jan 16 16:03:09 CST 2018
java.lang.System 类
System有很多静态方法:
- public static long currentTimeMillis() :返回以毫秒为单位的当前时间。
- -public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :将 数组中指定的数据拷贝到另一个数组中。
栗子:
public static void main(String[] args) {
int[] src = new int[]{1,2,3,4,5};
int[] dest = new int[]{6,7,8,9,10};
System.arraycopy( src, 0, dest, 0, 3);
/*代码运行后:两个数组中的元素发生了变化 src数组元素[1,2,3,4,5] dest数组元素[1,2,3,9,10] */
}
java.lang.StringBuilder类
StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进 行各种操作。对比String,StringBuilder长度可变,操作起来方便,而String长度不可变。
- public StringBuilder() :构造一个空的StringBuilder容器。
- public StringBuilder(String str) :构造一个StringBuilder容器,并将字符串添加进去。
- public StringBuilder append(…) :添加任意类型数据的字符串形式,并返回当前对象自身。
- public String toString() :将当前StringBuilder对象转换为String对象。
栗子:
public static void main(String[] args) {
StringBuilder sb1 = new StringBuilder();
System.out.println(sb1); // (空白)
// 使用带参构造
StringBuilder sb2 = new StringBuilder("it");
System.out.println(sb2); // it
// 链式创建
StringBuilder sb = new StringBuilder("Hello").append("World").append("Java");
// 调用方法
String str = sb.toString();
System.out.println(str); // HelloWorldJava
}
包装类
基本类型对应的包装类,如下
- 装箱:从基本类型转换为对应的包装类对象。
- 拆箱:从包装类对象转换为对应的基本类型。
自动拆、装箱:
Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5; //加法运算完成后,再次装箱,把基本数值转成对象