就业班JavaSE高级部分day01 Object类 常用API
Object类
java.long.Object类: 是所有类的父类(只要定义时没有写extends,全部默认写成类名 extends 父类名)
Object类的特点:
1. 是所有类的父类,每个类都直接或者间接继承Object
2. 每个类的对象都能使用Object类中的方法
toString的作用:
1. 类的对象调用toString方法,得到一个对象的字符串表示形式,默认使用Object类中的方法
2. 也可在Object的子类中重写toString方法
toString的快捷方式:
在子类中使用Alt + Insert 选择 toString() 即可重写
equals方法的作用:
比较两个对象是否相等,(默认方法)
也可在子类中重写该方法,用来比较两个对象的属性值是否相等
equals方法的快捷方式:
在子类中使用Alt + Insert 选择equals()和hashCode() 即可重写
重写的内容:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
long和Date对象互转:
long getTime(): 获取Date对象中保存的时间毫秒值
void setTime(long time): 修改Date对象的时间
String和Date对象互转:
java.text.DateFormat抽象类: 用于格式化和解析时间. 提供了方便的方法
// 常用成员方法 (抽象类不能创建对象, 但可以有非抽象的方法供子类使用)
String format(Date date): 格式化, 从Date对象转换为String对象
Date parse(String source): 解析, 从String对象转换为Date对象
date -> String "yyyy年MM月dd日 HH:mm:ss"
SimpleDateFormat(String pattern): 用给定的模式和默认语言环境的日期格式符号创建对象
// 常用模式: 可在SimpleDateFormat类中查看
y: 年
M: 月
d: 日
H: 时 (24小时制)
m: 分
s: 秒
E: 星期
D: 年中的天
K: 小时(12小时制)
S: 毫秒
Calendar对象和Date对象互转:
java.util.Calendar抽象类: 代表日历, 提供了不同国家的历法, 封装了很多时间属性
// 静态方法
static Calendar getInstance(): 根据当前系统设置获取合适的Calendar对象, 表示当前系统时间
// 获取日历对象的示例
Calendar c = Calendar.getInstance(); // 代表了当前时间
Calendar类: 常用功能:
java.util.Calendar抽象类: 代表日历, 提供了不同国家的历法, 封装了很多时间属性
// 静态成员变量
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 :秒
// 非静态成员方法 2018 09 11
int get(int field): 获取指定日历字段的值 int date = cal.get(Calendar.DAY_OF_MONTH)
void set(int field, int value): 修改指定日历字段为指定的值
void set(int year, int month, int date): 快速设置年月日
void add(int field, int amount): 调整指定日历字段的值. 正数增加, 负数减少
Date getTime(): Calendar转Date
void setTime(Date d): Date转Calendar
currentTimeMillis():
static long currentTimeMillis(): 返回当前系统时间的毫秒值
arrayCopy()方法:
static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数组中指定长度个元素到一个新数组中
* Object src: 源数组 (被复制的数组)
* int srcPos: 源数组索引 (从源数组的哪个索引开始复制)
* Object dest: 目标数组 (要复制到哪个数组)
* int destPos: 目标数组索引 (指定目标数组接收元素的索引位置)
* int length: 长度 (要复制的元素个数)
StringBuilder类:
+号拼接字符串的问题:
String是不可变的, 使用加号进行字符串拼接, 会创建很多额外的对象, 浪费内存空间
java.lang.StringBuilder类: 可变字符序列, 可以高效拼接字符串. 底层使用数组保存
// 构造方法
StringBuilder(): 构造一个空的StringBuilder容器
StringBuilder(String str): String转StringBuilder
// 常用方法
StringBuilder append(任意类型): 添加任意类型数据的字符串形式, 并返回当前对象
链式调用:
new StringBuilder().append(1).append("hello").append(true);
String和StringBuilder互转:
StringBuilder(String str): String转StringBuilder
String toString(): StringBuilder转String
装箱: 从基本类型转换为对应的包装类对象
装箱原理:
//Integer i1 = new Integer(1);
//Integer i2 = new Integer("1");
Integer i3 = Integer.valueOf(1); //使用包装类中的静态方法valueOf()
拆箱: 从包装类对象转换为对应的基本类型
拆箱原理:
int num = i.intValue();
基本类型转为String:
1. 拼接空字符串:
String s = "" + 34
2. 每个包装类中的静态方法 static String toString(参数):
String s = Integer.toString(10);
3. String类中的静态方法 static String valueOf(参数):
String s = String.valueOf(10);
String转基本类型: 利用每种包装类中的静态方法
static byte parseByte(String s): 将字符串参数转换为对应的byte基本类型
static short parseShort(String s): 将字符串参数转换为对应的short基本类型
static int parseInt(String s): 将字符串参数转换为对应的int基本类型
static long parseLong(String s): 将字符串参数转换为对应的long基本类型
static float parseFloat(String s): 将字符串参数转换为对应的float基本类型
static double parseDouble(String s): 将字符串参数转换为对应的double基本类型
static boolean parseBoolean(String s): 将字符串参数转换为对应的boolean基本类型
注意: 没有转char的!!
|