Object类:
1、Object类的特点:①、Object是类层次的根类,每个类都(直接或间接地)使用Object类座位父类;
②、所有类的对象都可以使用Object类中定义的方法。
2、Object类中toString()方法的作用:任何类的对象都可调用oString(),得到一个对象的字符串表示形式,默认使用Object类中定义的方式,如果不想使用默认方式,子类可以重写toString()方法,转换为自己想要的内容
3、Object类中的 equals() 方法的作用:默认方式是如何比较两个对象是否相等,但开发时, 一般要重写equals()方法, 让对象"根据属性值"来判断是否相等
日期时间相关的类:
1、Date类:①、构造方法Date():创建对象,表示当前系统时间;Date(long date):创建Date对象,使用制定毫秒值。
②、常用成员方法long getTime():获取Date对象中保存的时间毫秒值;void setTime(long time ):修改Date对象的时间。
2、SimpleDateFormat类:String format(Date date):格式化,从Date对象转换为String对象;
Date parse(String source):解析,从String对象转换为Date对象; SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号创建对象。
3、Calendar类:static Calendar getInstance():根据当前系统设置获取合适的Calendar对象,表示当前系统时间,Calendar c = Calendar.getInstance(); 代表了当前时间
System 类:
static long currentTimeMillis(): 返回当前系统时间的毫秒值
static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数组中指定长度个元素到一个新数组中
StringBuilder 类:
用加号拼接字符串时String是不可变的,会创建很多额外的对象,浪费内存空间
StringBuilder是可变字符序列,可以高效拼接字符串形式,底层使用数组保存
Collection类:
1、集合和数组的区别:数组长度不可变:集合长度可变;数组可以存基本类型或引用类型, 只能存同一种类型; 集合只能存储引用类型元素, 可以是多种类型元素
2、使用迭代器遍历集合的3步:使用集合对象的 iterator() 获取迭代器对象, 用 Iterator 接口接收.(多态); 使用 Iterator 接口中的 hasNext() 方法, 判断是否有下一个元素; 使用 Iterator 接口中的 next() 方法, 获取下一个元素
3、迭代器的原理:迭代器有一个指针(其实就是个变量, 保存索引值), 最初指向集合的 0 位置;hasNext() 方法可以判断当前索引是否有元素;next() 方法返回当前元素, 并移动指针到下一个索引。
4、增强for, 普通for, 迭代器的区别:
增强for:
优点: 获取元素很方便, 格式简单
缺点: 没有普通for中的索引, 没有迭代器对象可以进行元素的增删
应用场景: 适用于遍历获取数组和集合元素的场景
普通for:
优点: 有索引可以使用, 某些方式可以在遍历过程中增删元素
缺点: 格式繁琐
应用场景: 需要用到索引的场景
迭代器:
优点: 可以使用迭代器对象的方法操作元素
缺点: 格式繁琐
应用场景: 需要在迭代过程中增删元素的场景
泛型:
1、不使用泛型的问题:集合实际存储的是 Object 类型, 存入的元素无论是什么类型, 都会被提升为 Object, 取出来的也是 Object, 要想调用元素特有方法, 就要向下转型, 有可能发生类型转换异常 ClassCastException
2、泛型的好处:避免了类型转换的麻烦; 将运行时的类型转换异常, 转移到了编译时期 (有利于程序员提前发现问题)
3、泛型定义总结:
定义在类上的泛型:
有效范围: 整个类中都有效
何时确定具体类型: 创建该类对象时确定泛型的具体类型
定义在方法上的泛型:
有效范围: 方法中(包括返回值类型和参数类型)有效
何时确定具体类型: 调用方法传参时确定泛型的具体类型
定义在接口上的泛型:
有效范围: 接口中
何时确定具体类型:
子接口或实现类定义时确定泛型的具体类型
创建实现类对象时确定泛型的具体类型
4、泛型的上限:
格式: 类型名称<? extends 类名> 对象名称
示例: List<? extends Number> list
作用: 只能接收泛型为该类型及其子类的对象 (Number及其子类的泛型)
泛型的下限:
格式: 类型名称<? super 类名> 对象名称
示例: List<? super Number> list
作用: 只能接收泛型为该类型及其父类型的对象 (Number及其父类的泛型)