初识 javase(下)

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类


容器

初识 javase(下)_第1张图片


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接口定义了如下方法:

初识 javase(下)_第2张图片

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容器的一些常用算法

初识 javase(下)_第3张图片

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)。

你可能感兴趣的:(javase)