java.lang.Object
public String toString() :任何类的对象调用toString(),得到该对象的字符串表现形式。如子类不重写toString()方法,默认调用Object的里的toString()方法,则会输出该对象的地址值,如:com.itheima.Student@93b9c129。
Object类的toString源代码:
public class Object {
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
}
getClass().getName():
getClass(): Object类的方法, 获取当前对象的类的字节码对象
getClass().getName(): 通过字节码对象获取该类的全名
Integer.toHexString(hashCode())
hashCode(): Object类的方法, 获取当前对象地址值的哈希值
Integer.toHexString(int n): 将参数转换为十六进制数字的字符串
public boolean equals(Object obj)
public class Object {
public boolean equals(Object obj) {
return (this == obj); // 引用数据类型, ==比较对象的地址值是否相同
}
}
@Override
public boolean equals(Object o) {
// 如果对象地址值相同, 则是同一个对象, 那么属性值肯定相同, 认为相等
if (this == o) return true;
// 如果被比较对象为null, 或者不是同一个类型, 则认为不相等
if (o == null || getClass() != o.getClass()) return false;
// 如果不是同一个对象, 且不为null, 且是一个类型, 则向下转型比较子类特有属性
Person person = (Person) o;
// 基本类型属性值用==比较, 引用类型属性值用Objects工具类的equals()比较
return age == person.age &&
Objects.equals(name, person.name);
}
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
long(数学计算)
\ SimpleDateFormat
Date -------------------- String (用户输入和显示)
/
Calendar (获取时间的某个部分)
long getTime(): 获取Date对象中保存的时间毫秒值
void setTime(long time): 修改Date对象的时间
String format(Date date): 格式化, 从Date对象转换为String对象
Date parse(String source): 解析, 从String对象转换为Date对象
String format(Date date)和Date parse(String source)方法,所以我们一般直接调用该方法。
y: 年
M: 月
d: 日
H: 时 (24小时制)
m: 分
s: 秒
E: 星期
D: 年中的天
K: 小时(12小时制)
S: 毫秒
示例: "yyyy-MM-dd E HH:mm:ss.SSS"
结果: 2016-04-01 星期五 17:29:15.868
SimpleDateFormat format = new SimpleDateFormat("yyyy‐MM‐dd HH:mm:ss");
1.3 DateFormat类之格式化format方法
String format(Date date)
: 格式化, 从Date对象转换为String对象,并返回
例如, 创建的SimpleDateFormat对象的模式是: new SimpleDateFormat(
"yyyy年MM月dd日 HH:mm:ss"
)
public class Test {
public static void main(String[] args) {
// 创建SimpleDateFormat对象用于格式化日期为字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// 创建日期对象(使用当前系统时间)
Date date = new Date();
// 格式化
String s = sdf.format(date);
System.out.println(s); // 2018年07月24日 14:45:48
}
}
new SimpleDateFormat(
"yyyy-MM-dd"
)
public class Test {
public static void main(String[] args) throws ParseException {
// 已知日期字符串"2000-10-01"
String s = "2000-10-01";
// 将该日期字符串解析为日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(s); // 红线按 Alt + Enter , 选择第一项 Add exception to method signature
java.util.Calendar抽象类: 代表日历, 提供了不同国家的历法, 封装了很多时间属性
static Calendar getInstance(): 根据当前系统设置获取合适的Calendar对象, 表示当前系统时间
Calendar c = Calendar.getInstance(); // 代表了当前时间
补充:Calendar c = Calendar.getInstance() 会根据当前系统获取合适的子类对象。并把当前系统时间作为参数传递到对象的静态变量里。
static int YEAR :年份
static int MONTH :月份. 注意月份数值是 0-11
static int DAY_OF_MONTH :月中的日期
static int HOUR :小时(12小时制)
static int HOUR_OF_DAY :小时(24小时制)
static int MINITE :分钟
static int SECOND :秒
int get(int field): 获取指定日历字段的值 代码为: int year = cal.get(Calendar.YEAR)
void set(int field, int value): 修改指定日历字段为指定的值
void add(int field, int amount): 调整指定日历字段的值. 正数增加, 负数减少
Date getTime(): Calendar转Date
void setTime(Date d): Date转Calenda
Date(long millis): long转Date
long getTime(): Date转long
利用SimpleDateFormat
Date parse(String s): String转Date
String format(Date): Date转String
利用Calendar
Date getTime(): Calendar转Date
void setTime(Date d): Date转Calendar
static long currentTimeMillis(): 返回当前系统时间的毫秒值
static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数组中指定长度个数的元素到一个新数组中
* Object src: 源数组 (被复制的数组)
* int srcPos: 源数组索引 (从源数组的哪个索引开始复制)
* Object dest: 目标数组 (要复制到哪个数组)
* int destPos: 目标数组索引 (指定目标数组接收元素的索引位置)
* int length: 长度 (要复制的元素个数)
java.lang.StringBuilder类: 可变字符序列, 可以高效拼接字符串. 底层使用数组保存
// 构造方法
StringBuilder(): 构造一个空的StringBuilder容器
StringBuilder(String str): String转StringBuilder
基本类型 | 对应的包装类(位于java.lang包中) |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
static byte parseByte(String s): 将字符串参数转换为对应的byte基本类型
static short parseShort(String s): 将字符串参数转换为对应的short基本类型 Short
static int parseInt(String s): 将字符串参数转换为对应的int 基本类型 Integer
static long parseLong(String s): 将字符串参数转换为对应的long基本类型
static float parseFloat(String s): 将字符串参数转换为对应的float基本类型
static double parseDouble(String s): 将字符串参数转换为对应的double基本类型
static boolean parseBoolean(String s): 将字符串参数转换为对应的boolean基本类型
boolean add(E e): 把给定的对象添加到当前集合中
void clear(): 清空集合中所有的元素
boolean remove(E e): 把给定的对象在当前集合中删除
boolean contains(E e): 判断当前集合中是否包含给定的对象
boolean isEmpty(): 判断当前集合是否为空(没有元素)
int size(): 返回集合中元素的个数
Object[] toArray(): 把集合中的元素,存储到数组中
Iterator<E> iterator(): 获取集合的迭代器对象 (后面讲到)
Iterator接口: 迭代器
Iterator<E> iterator(): 获取集合的迭代器对象
boolean hasNext(): 判断是否有下一个元素
E next(): 获取下一个元素
void remove(): 删除next指向的元素
泛型通配符:
格式: 类型名称<? extends 类名> 对象名称
示例: List<? extends Number> list
作用: 只能接收该类型及其子类 (Number及其子类的泛型)
格式: 类型名称<? super 类名> 对象名称
示例: List<? super Number> list
作用: 只能接收该类型及其父类型 (Number及其父类的泛型)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |