本帖最后由 tianhaolin 于 2018-11-14 14:58 编辑
01-API
1.Object类
1)toString:
*看一个类是否重写toString方法,直接打印这个类对应对象的名字即可
2.日期类
1)Date:
*导包:java.util和java.sql包,当前使用util包
*是long、String转换的桥梁
2)DateFormat类(abstract类)和SimpleDateFormat类(子类)
*格式化(也就是日期—>文本) String format(Date date) 把Date类转换成符合模式的字符串
*解析(也就是文本—>日期) Date parse(String source) 把符合模式的字符串,解析为日期
*常用模式:"yyyy-MM-dd HH:mm:ss"
"yyyy年MM月dd日 HH时mm分ss秒"
3)Calendar(日历类)
*Calendar类无法直接创建对象使用,里面有个静态方法叫做getInstance();,返回Calendar的子类对象
4)日期类总结:
*Date <——> long
Date——>long long getTime();
long——>Date new Date(long millis);
*Date <——> String
Date——>String SimpleDateFormat类 String format(Date d) 方法
String——>Date SimpleDateFormat类 Date parse(String str)方法
*Date <——> Calendar
Date——>Calendar void setTime(Date d)
Calendar——>Date Date getTime();
3.System类
1)currentTimeMillis方法
*一般用来测试程序的效率,开始之前获取一次,结束后获取一次
2)arrayCopy方法
4.String拼接
1)StringBuilder-又被称为字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串)
*使用字符串相加,内存中会有多个字符串,效率低下
*StringBuilder在内存中始终是一个数组Byte[16],如果超出了容量会自动扩容
*链式调用(append方法):方法的返回值是一个对象,可以根据对象继续调用方法
new StringBuilder.append("abc").append(true).append(8.8).append("中").appd(....)
*toString方法
2)StringBuffer-在多线程情况下StringBuffer更加安全
5.包装类: 基本数据类型的数据,使用起来非常方便,但是没有对应的方法来操作这些数据;
所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类;
在包装类中可以定义一些方法,用来操作基本类型的数据。
1)装箱与拆箱
*JDK1.5后自动拆装箱
*自动装箱:例 Integer in = 1
*自动拆箱:例 in += 2
in是包装类,无法直接运算,可以自动转换为基本类型的数据再参与计算4
自动拆箱后自动装箱
*自动拆装箱可能会引起空指针异常,要注意!
2)基本数据类型与字符串之间的转换
*基本类型——>字符串:基本类型+""(常用)/String.valueOf()/包装类.toString();
*字符串——>基本类型 包装类的静态方法parseXXX("字符串);
02-Collection
学习目标:1.学会使用集合存储数据2.会遍历集合3.掌握每种集合的特性
学习方式:1.学习顶层:学习顶层(接口/抽象类)共性的方法
2.使用低层:顶层不是接口就是抽象类,需要实现类来实现
1.接口概述(从上到下)
1)Collection接口
*定义的是所有单列集合中共性的方法
*所有单列集合都可以使用
*不含带索引的方法
2)List接口 extends Collection接口
*有序的集合(存储元素和取出元素的顺序一致)
*允许重复的元素
*有索引,包含一些带索引的方法
3)Set接口 extends Collection接口
*不允许重复元素
*没有索引,不包含带索引的方法
2.Collection接口
增删改查
3.Iterator迭代器
1)常用的两个方法:hasNext()/next();用来遍历集合
2)迭代器实现类
*获取实现类对象:Collection接口中的方法iterator(),返回值是迭代器的实现类对象
*迭代器的使用步骤
**获取迭代器的实现类对象
**用hasNext()方法判断是否到达集合末尾
**使用next()方法获取下一个元素
*迭代器的并发修改异常
在使用迭代器的过程中修改集合长度,会引发跌大气的并发修改异常
在使用迭代器遍历时不要修改集合长度
*迭代器并发修改异常的解决方法(了解)
Iterator接口有一个子接口ListIterator(只有List接口下面的集合可以使用)
ListIterator接口中定义了add方法和remove方法,可以对集合添加/删除元素
使用ListIterator接口中的add/remove方法对集合添加/删除元素,那么迭代器自己添加/删除的,就不会抛出异常
获取ListIterator实现类对象需要List对象(Collection 向下转型为List)
4.增强for循环
02-泛型
泛型是一种位未知的数据类型,可以看做一个“变量”,用来接收数据类型
1.泛型的定义
*<E>:声明了一个泛型(看做是声明了一个“变量”)
*E:使用E这种类型作为数据类型(泛型只可以使用引用类型)
2.泛型的好处
*避免了转换的麻烦
*将运行时的类型转换异常,提前到了编译时期
3.泛型的定义
1)含有泛型的类
*修饰符 class 类名称<泛型>
2)含有泛型的方法
*修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){方法体;}
3)含有泛型的接口
*修饰符 interface 接口名<泛型>
*实现类实现了泛型接口后的选择
定义实现类时确定泛型的具体类型: public class A implements Generic<String>
定义实现类时仍沿用泛型,直到创建对象 public class A<I> implements Generic<I>
4)泛型通配符
*<?>代表的是任意的数据类型,是已经定义了的泛型
*通配符不能创建对象使用,只能作为方法的参数使用
*通配符的下限限定:<? super 类名称>
*通配符的上限限定:<? extends 类名称>
|
|