String类(代表不可变的字符序列)
1.常见的三种构造方法
2.常用的方法(valueOf,split等)
3.正则表达式
StringBuffer(代表可变的字符序列)
1.常见的两种构造方法
2.常用的方法(append,insert等)
如,str.append("/").append("zyong").insert(0,"bless")
基本数据类型包装类(这些类封装了相应的数据类型数值,并提供了一系列操作,如)
Math类
File类
1.代表系统文件名(路径+文件名)
2.常见的两种构造方法
3.常用方法
ps:在命令行中以树状形式展现特定的文件夹及其子文件(夹)。
Enum类
容器
Collection接口中定义了存取一组对象的方法,其子接口Set和List定义了存取方式。
对容器整体输出时,分别调用容器内各对象的toString方法进行输出。
容器类对象在调用remove()、contains()等方法时,会比较对象是否想等,这会涉及equals()和hashcode()方法。在自定义类中应该重写这两个方法,以实现自定义对象的相等规则。
public boolean equals(Object obj)
public int hashcode()
Iterater接口
1.所有实现了Collection接口的容器类,都有一个iterator方法,用来返回一个实现了Iterator接口的对象()。
2.Iterator对象称作迭代器,用来方便实现容器内元素的遍历。
3.Iterator接口定义了如下方法:
4.Iterator是工作在一个独立的线程中,并且拥有一个mutex锁,Iterator被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,所以当索引指针往后移动的时候就找不到要迭代的对象,所以按照fail-fast原则,Iterator会马上抛出java.util.ConcurrenModificationException异常。
所有Iterator在工作时是不允许迭代的对象被改变的。但可以使用Iterator本身的方法remove来删除对象。remove方法会在删除当前迭代对象的同时维护索引的一致性。
增强型for(除了简单遍历并读出内容外,不建议使用)
Set接口
1.其实现包括HashSet、TreeSet等
2.除了实现Collection的方法外,没有提供其他方法。
3.其中元素无序、不可重复。
4.常用的两种构造方法
List接口
1.其中元素有序、可重复
2.容器中的元素都对应一个整数型序号记载其在容器中的位置,可根据此序号查找元素。
3.java.util.Collections类中提供静态方法实现了基于List容器的一些常用算法
4.3中存在排序方法,如果List中的元素为自定义对象,排序方法可能就要不起作用了。所有可被排序的类都应该实现java.lang.Comparable接口,此接口中只有一个方法public int compareTo(Object obj),通过这一方法确定该类的对象排序方式。
5.实现包括LinkedList、ArrayList等
如何选择数据结构:array读快写慢,list读慢写快,hash介于其中。
Map接口
1.键—值对
2.实现包括HashMap、TreeMap等
3.通过键值唯一标示键—值对,故键值不能重复
Auto-boxing/unboxing
如,int a = new Integer(3);
泛型
1.明确装入容器中元素的类型,增强程序可读性、稳定性。
2.可在定义Collection时指定,可在循环时用Iterator指定。(最好两个地方均指定)
容器总结:一个类(Collections)三个知识点(foreach、Generic、Auto-boxing/unboxing)六个接口(Collection、Set、List、Map、Iterator、Comparable)。