一、Object 类
- 是类层次结构的根 (父) 类。
-
String toString ()
- 返回该对象的字符串表示,其实该字符串内容就是对象的类型 + @ + 内存地址值。
- 由于 toString 方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。
-
boolean equals ( Object anthoerObject)
- 判断某个对象是否与此对象 "相等"。
- 这里的 "相等" 有默认和自定义两种方式。
- 默认地址比较
- 如果没有覆盖重写 equals 方法,那么 Object 类中默认进行
==
运算符的对象地址比较,只要不是同一个对象,结果必然为 false。
-
对象内容比较
- 如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写 equals 方法。
-
Objects 类
- 在 JDK7 添加了一个 Objects 工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是 null-save(空指针安全的)或 null-tolerant(容忍空指针的),用于计算对象的 hashcode、返回对象的字符串表示形式、比较两个对象。
-
在比较两个对象的时候,Object 的 equals 方法容易抛出空指针异常,而 Objects 类中的 equals 方法就优化了这个问题。方法如下
-
static boolean equals (Object a ,Object b)
-
源码
-
public static boolean equals(Object a, Object b) {
- return (a == b) || (a ! = null && a.equals( b ));
- }
二、日期时间类
-
Date 类
- 表示特定的瞬间,精确到毫秒。
- 构造方法
-
Date()
-
Date(long date)
- 传递毫秒值,把毫秒值转换为 Date 日期。
- 由于我们处于东八区,所以我们的基准时间为1970年1月1日8时0分0秒。
- 成员方法
-
DateFormat 类
- 日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在 Date 对象与 String 对象之间进行来回转换。
- 格式化:按照指定的格式,从 Date 对象转换为 String 对象。
- 解析:按照指定的格式,从 String 对象转换为 Date 对象。
- DateFormat 为抽象类,不能直接使用,经常使用它的子类:SimpleDateFormat。
-
SimpleDateFormat
-
这个类需要一个模式(格式)来指定格式化或解析的标准。
-
构造方法
-
SimpleDateFormat(String pattern)
-
参数 pattern 是一个字符串,代表日期时间的自定义格式。
-
举例
-
成员方法
-
String format(Date date)
-
Date parse(String str)
-
Calendar 类
- 日历类,替换掉了许多 Date 的方法,该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。
- 是抽象类。
-
如何创建
-
通过静态方法创建,返回子类对象(多态)。
-
public static Calendar getInstance()
-
成员方法
-
int get(int field)
-
void set(int field, int value)
-
abstract void add(int field, int amount)
-
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
- int field:传递指定的日历字段(YEAR,MONTH...)
-
int amount:增加/减少指定的值
-
Date getTime()
- 返回一个表示此 Calendar 时间值(从历元到现在的毫秒偏移量)的 Date 对象。
-
成员方法的参数
-
int field:日历类的字段,可以使用 Calendar 类的静态成员变量获取。
- public static final int YEAR = 1; 年
- public static final int MONTH = 2; 月
- public static final int DATE = 5; 月中的某一天
- public static final int DAY_OF_MONTH = 5; 月中的某一天
- public static final int HOUR = 10; 时
- public static final int MINUTE = 12; 分
- public static final int SECOND = 13; 秒
三、System 类
- 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。
-
静态方法
-
public static long currentTimeMillis()
-
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
- 将数组中指定的数据拷贝到另一个数组中。
- src - 源数组。
- srcPos - 源数组中的起始位置(起始索引)。
- dest - 目标数组。
- destPos - 目标数据中的起始位置。
- length - 要复制的数组元素的数量。
四、StringBuilder 类
- 可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
- 是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
- 进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。
- 线程不安全。
-
构造方法
-
StringBuilder()
- 构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。
-
StringBuilder(String str)
- 构造一个字符串生成器,并初始化为指定的字符串内容。
-
成员方法
-
StringBuilder append(...)
-
添加任意类型数据的字符串形式,并返回当前对象自身。
- 返回的是 this,调用方法的对象。
-
使用 append 方法无需接收返回值。
-
String toString()
-
将当前 StringBuilder 对象转换为 String 对象。
- 通过此方法和StringBuilder(String str)构造方法实现 StringBuilder 和 String 间的转换。
五、包装类
- Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类。
- 装箱:从基本类型转换为对应的包装类对象。
- 拆箱:从包装类对象转换为对应的基本类型。
- 从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。
-
基本类型与字符串类型之间的相互转换
- 基本类型 -> 字符串( String )
- 基本类型的值 + "" ,最简单的方法(工作中常用)。
-
包装类的静态方法 toString(参数),注意不是Object类的 toString() 重载。
-
static String toString(int i)
-
String 类的静态方法 valueOf(参数)。
-
static String valueOf(int i)
-
字符串( String ) -> 基本类型
-
使用包装类的静态方法 parseXXX("字符串")。
- Integer 类: static int parseInt(String s)
- Double 类: static double parseDouble(String s)
六、05.常用 API 第二部分完结
05.常用 API 第二部分