就业班day1 Object类 常用API
toString() :返回该对象的字符串表示
不打印地址值, 而想要打印出对象的属性值,一般我们都要输出JavaBean的属性名和属性值, Alt + Insert 选择 toString() 即可重写
equals()
不重写时, 自定义对象默认继承Object类的equals()方法, 通过 == 比较地址值
但开发时, 一般要重写equals()方法, 让对象"根据属性值"来判断是否相等
IDEA快捷键: Alt+Insert, 选 equals() and hashCode()
一 日期时间相关的类
long和Date对象互转 String和Date对象互转 Calendar对象和Date对象互转
long
\ SimpleDateFormat
Date -------------------- String
/
Calendar
System.CurrentTimeMills(); 获取当前时间日期到时间远点(1970年0时0分0秒,中国东八区,加8小时)的毫秒值
(1)Date类 空参 获取当前时间日期, 带参(long型) 把传递的毫秒值转换成日期
// 构造方法 Date(): 创建Date对象, 表示当前系统时间
Date(long date): 创建Date对象, 使用指定的毫秒值作为时间
gettime同System.CurrentTimeMills(); 日期变毫秒 longtime=date,get Time();
// 常用成员方法 long getTime(): 获取Date对象中保存的时间毫秒值
void setTime(long time): 修改Date对象的时间
(2)DateFormat类 抽象类
常用成员方法 (抽象类不能创建对象, 但可以有非抽象的方法供子类使用)
String format(Date date): 格式化, 从Date对象转换为String对象
例子 SimpleDateFormat shen=new SimpleDateFormat(.yyyy年MM月dd日 HH:mm:ss.)
Date date=new date;
String d=shen.format(date);
sout(d)--->2018年11月14日16:06:00
Date parse(String source): 解析, 从String对象转换为Date对象
例子 SimpleDateFormat shen=new SimpleDateFormat(.yyyy年MM月dd日 HH:mm:ss.)
Date d=shen.parse(2018年11月14日16:06:00);
sout(d)-------->打印是Date日期即(16:11:00 2018)
二 Calendar类 日历
静态方法 static Calendar getInstance():
Calendar c = Calendar.getInstance(); // 代表了当前时间
三 System类: currentTimeMillis()和arrayCopy()方法
四 StringBuilder类
new StringBuilder()
StringBuilder append(任意类型)
String toString()
五 包装类
自动装箱: 基本 -> 包装 Integer.valueOf()
自动拆箱: 包装 -> 基本 int a = i.intValue();
就业班day2Collection 泛型
Collection单列集合 共性方法 迭代器 增强for 泛型
一 集合
Collection(共性方法) 接口: 单列集合顶层 :
|_ List接口: 元素存取有序, 可重复, 有索引
|_ Set接口: 不可重复, 无索引
Collection<Integer> col = new ArrayList<>(); // 多态, 只在学习时用这种方式创建对象
coll.共有方法(); boolean add(E e): 把给定的对象添加到当前集合中
void clear(): 清空集合中所有的元素
boolean remove(E e): 把给定的对象在当前集合中删除
int size(): 返回集合中元素的个数
boolean contains(E e): 判断当前集合中是否包含给定的对象 存在=true
boolean isEmpty(): 判断当前集合是否为空(没有元素) 空=true
Object[] toArray(): 把集合中的元素,存储到数组中
例子: Object[] obj = list.toArray();
二 迭代器(Iterator): 用于遍历集合的对象,通用的取元素方式.
使用迭代器遍历集合的3步:
1. 使用集合对象的 iterator() 获取迭代器对象, 用 Iterator 接口接收.(多态)
2. 使用 Iterator 接口中的 hasNext() 方法, 判断是否有下一个元素
3. 使用 Iterator 接口中的 next() 方法, 获取下一个元素
格式例子: Iterator<元素类型> shen = 集合对象.iterator(); (所以要建一个集合)
while (iterator.hasNext()) {
元素类型 变量名 = iterator.next(); }
迭代器的并发修改异常 1. 迭代过程中不要修改集合长度
2. 在迭代的过程中添加, 删除元素, 要使用迭代器自带的方法, 而不能使用集合的方法
三 增强for循环 用于遍历集合,数组, 底层采用迭代器
格式 for (元素类型 变量名 : 数组/集合 名) {
sout(变量名) }
快捷键 集合.for
四 泛型 泛型没有继承概念
定义集合时, 某些方法不知道使用什么类型时, 就可以使用泛型
创建集合对象时, 需要确定泛型具体的类型
(1) 如何在类的声明上定义泛型
public class ArrayList<E> { // E可以表示任意的引用类型, 但是只能表示某一种,默认obj.
private E name; 泛型在"使用"时, "必须是"具体的数据类型 ArrayList<Integer>
(2) 如何在方法中定义泛型
格式 修饰符 <代表泛型的名字> 返回值类型 方法名(带泛型的参数){ }
例子 public static <S> void staticMethod(S s)
"在调用方法时"确定泛型的具体类型
例子 gm.method(1); // 确定为Integer
gm.method("a"); // 确定为String
(3) 接口中定义泛型 1 定义接口实现类指定接口泛型 2 接口是什么类型,类就跟着
格式 修饰符 interface 接口名<代表泛型的变量> { }
public interface GenericInterface<I> {
void method(I i); }
五 泛型通配符
受限 上限: <? extends E> 可以接收泛型为E类型或E类型的子类类型
下限: <? super E> 可以接收泛型为E类型或E类型的父类类型
通配符 <?>
<? extends E>
<? super E>