day01
1.能够说出Object类的特点
object类是所有类的父类,位于继承接口的顶端,其中的方法,所有对象都继承拥有,所有类继承自动继承object类
2.能够重写Object类的toString方法
toString方法将对象转化为字符串,不重写toString方法:类型信息+@+地址值
重写toString方法,可重写,也可自动生成:alt+insert
3.能够重写Object类的equals方法
默认做法:return(this == obj)
覆盖重写:alt+Insert
注意事项: 必须一起和hashCode一起使用,成双成对,形影不离
4.能够使用日期类输出当前日期
类: java.util.date
System.out.println(new Date()) // 输出当前日期,默认英文格式
构造方法:
public Date():此时此刻
public Date(long time):从1970年始到现在的毫秒值,参数代表毫秒值
毫秒方法:
设置毫秒:public void setTime(long time)
获取毫秒:public long getTime()
日历类:java.util.Calendar
获取:Calendar cal = Calendar.getInstanse() 不能new
常用方法:
获取数值:public int get(int filed)
设置数值:public int set(int filed,int value)
偏移量: public void add(int filed,int amount)
转成日期对象: public Date getTime()
5.能够使用将字符串转换成日期和日期格式化为字符串的方法
抽象父类:java.text.DateFormat
格式化方法: format Date ---> String
解析的方法: parse String ---> Date 抛异常 ParseException
常用子类:java.text.SimpleDateFormat
格式:yyyy-MM-dd HH:mm:ss.SSS
6.能够使用System类的数组复制方法
public static void arraycopy(object src,int srcPos,object dest,int destPos,int length)
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
src:源数组
srcPos: 源数组索引
dest: 目标数组
destPos: 目标数组索引
length: 复制长度
7.能够使用System类获取当前毫秒时刻值
public static long currentTimeMills()
8.能够说出使用StringBuilder类可以解决的问题
StringBuilder可以减少字符串拼接过程产生垃圾中间量问题,提高效率
9.能够使用StringBuilder进行字符串拼接操作
StringBuilder:字符串缓冲区,长度可变
构造方法:
pubblic StringBuilder():空白
public StringBuilder(String str):初始化放入字符串
追加方法:
public StringBuilder append(任意类型)
链式编程就好比一个铁链,一环扣着一环。
Sb.append().append().append();
与字符串之间来回转换:
String --> SB:
1. 构造方法,new的时候直接放进去。
2. 后续append追加进去,也行。
SB --> String:
直接调用toString方法即可。
10.能够说出8种基本类型对应的包装类名称
Byte Short Integer Long Float Double Character Boolean 特殊记忆int和char的包装类型
11.能够说出自动装箱、自动拆箱的概念
自动装箱:将基本数据类型自动转化为对应的包装类
自动拆箱:将包装类数据转化为基本数据类型
12.能够将字符串转换为对应的基本类型
String str = "100";
int num = Integer.parseInt(str);
除character的包装类都有这种方法
13.能够将基本类型转换为对应的字符串
1.""+基本数据类型(推荐)
2.String.valueo方法
3.先变成包装类,在用toString方法(不推荐)
Day02
1.集合和数组的区别:
数组长度不可变,存储的都是同一类型的数据
集合长度可以改变,就是一个容器,存储的都是对象
2.collection集合
所有集合类的父接口,所有子类对象都拥有它的方法
两个重要子接口:List和set
list:元素有顺序,可重复, 有索引值. 常用子类:ArrayList/LinkedList/Vector
set:没有顺序,不可重复,没有索引值. 常用子类:TreeSet/HashSet/LinkedHashSet
常用方法:
添加:public static add(E e)
删除: public boolean remove(object o)
包含: public boolean contains(object o)
是否为空: public boolean isEmpty()
清空: public clear()
长度: public int size()
转字符串: public Object[] toString()
3.使用迭代器
Iterator<String> iter = 集合.iterateor()
while(hasNext()){
System.out.println(iter.next())
}
4.增强for循环
1.支持数组
2.支持java.lang.Iterator接口实例(例如集合)
格式:for(数据类型 变量名 : 数组或接口){...}
注意事项:没有索引值,无法直接通索引获取基本数据类型的数据值,或是引用数据类型的地址值
语法糖: 对于数组,底层就是fori循环
对于Iterator,底层就是迭代器
5.泛型的三种用法
1.类的泛型
格式: 修饰符 class 类名<泛型>{...}
2.接口的泛型
格式: 修饰符 interface 接口名<泛型> {...}
3.方法的泛型
格式: 修饰符 <泛型> 返回值类型 方法名称(参数类型 参数名称,...){...}
6.泛型的通配符
<?>: 任何类型
<? extends 类 >: 必须是指定的类,或者其子类. (上限,最高不能超过这个类)
<? super 类 >: 必须是指定的类,或者其父类. (下限,最低不能低于这个类)
7.斗地主案例
集合相关的工具类: java.util.Collections
public static void shuffle(List<?> list):随机排列,打乱顺序。