二.进阶
<一>Java集合类
1.Collection接口
①集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充
②集合的特点:
性能高
容易扩展和修改
③Collection的常用子类:
List
Set
Queue
2.List接口
①List接口可以存放任意的数据,而且在List接口中内容是可以重复的
②List接口常用子类:
ArrayList
Vector
③常用操作:
判断集合是否为空:boolean isEmpty()
查找指定的对象是否存在:int indexOf(Object o) (返回列表中第一次出现的指定元素的索引,如果不包含该元素,则返回 -1)
④ ArrayList 和 Vector比较
JDK1.2之后推出 JDK1.0推出
采用异步处理方式,性能高 采用同步处理方式,性能低
属于非线程安全 属于线程安全
3.Set接口
①Set接口中不能加入重复元素,但是可以排序
②Set接口常用子类
散列存放:HashSet (无序)
有序存放:TreeSet
4.Iterator接口
①集合输出的标准做法是使用Iterator接口
②操作原理:
Iterator是专门的迭代输出接口,迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取出(迭代输出的时候一定不要通过集合操作、删除元素)
5.Map接口
①保存形式:
key——>value的方式保存
②常用子类:
HashMap:无序存放,key不允许重复
Hashtable:无序存放,key不允许重复
<二>File类
1.文件的创建、删除、重命名
①文件重命名时文件夹结构必须处于同一个分区,当文件处于不同的分区时,需要使用文件的拷贝,而不是重命名
<三>Java IO
1.IO流
①IO也写作“I/O”,可理解为In和Out,即输入和输出,基本功能也就是读和写
②根据数据的走向可分为:输入流、输出流
③根据处理的数据类型可分为:字节流、字符流
④字节流和字符流:
字节流可以处理所有类型的数据。在读取时,读到一个字节就返回一个字节。在Java中对应的类都以“Stream”结尾
字符流仅能够处理纯文本数据。在读取时,读到一个或者多个字节,先查找指定的编码表,然后将查到的字符返回。在Java中对应的类都以“Reader”或“Writer”结尾
2.字符集(Charset)
①“字符集”也称作“编码”。各个国家和地区所指定的不同ANSI编码标准中,都只规定了各自语言所需的“字符”
②ANSI编码标准所规定的内容包含:
使用哪些字符,这些字符的集合就叫做“字符集”
规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫做“编码”
③ANSI
系统预设的标准文字储存形式,不是具体的某一种编码,不同的国家和地区使用不同的标准,一个字符可能使用一个字节或多个字节来表示,称这种字符串为ANSI字符串或者多字节字符串
④UNICODE
国际组织制定的,为各种语言中的每一个字符设定了统一并且唯一的数字编号,不管在什么环境下,它所代表的“字符”内容总是不变的,称这种字符串为Unicode字符串或者宽字节字符串
<四>多线程
1.线程与进程
①线程:
程序中单独顺序的控制流
线程本身依靠程序进行运行
线程是程序中的顺序控制流,只能使用分配给程序的资源和环境
②进程:
执行中的程序
一个进程可以包含一个或多个线程
一个进程至少要包含一个线程
③单线程:程序中只存在一个线程,实际上主方法就是一个单线程
④多线程:
多线程是在一个程序中运行多个任务
多线程的目的是更好的使用CPU资源
2.线程的实现
① 在Java中,线程的实现有两种(线程的启动是通过start()):无论用哪种方式都要重写run()方法
继承Thread类
实现Runnable接口
②Thread类:Thread类是在Java.long包中定义的,继承Thread类必须重写run()方法
定义格式:
class className extends Thread{
run(){};
}
③Runnable接口
3.线程的状态
①线程也有固定的操作状态
创建状态:准备好一个多线程的对象
就绪状态:调用了start()方法,等待CPU进行调度(等待CPU分配资源)
运行状态:执行run()方法
阻塞状态:暂时停止执行,可能将资源交给其他线程使用
终止状态(死亡状态):线程销毁
4.线程的常用方法
①取得线程名称:getName()
取得当前线程对象:currentThread()
判断线程是否启动:isAlive()
线程的强行运行:join()
线程的休眠:sleep()
线程的礼让:yield()
5.线程的优先级
①优先级顺序设置(setPriority()):
1-MIN_PRIORITY
10-MAX_PRIORITY
5-NORM_PRIORITY
如果什么都不设置默认值是5
6.同步
①同步代码块(资源共享时使用同步):在代码块上加上“synchronized”关键字,则此代码块就成为同步代码块
②同步代码块格式:
synchronized(同步对象){
需要同步的代码块;
}
③同步方法:除了代码块可以同步,方法也是可以同步的
④方法同步格式:
synchronized void 方法名称(){}