一、集合框架考点:这些集合的特点,如Set存入集合是没有重复对象的,实现方式compareTo()方法比较
遍历方式有哪几种:1、下标 2、迭代器 3、增强for(1.5以后新方法)
Map的遍历方法:1、keySet()方法获取到键集合,再通过键获取值 2、entrySet()方法可以通过迭代器循
Itertor
collection
list 此接口的用户可以对列表中每个元素的插入位置进行精确地控制, 此实现不是同步的。
---ArrayList 数组的增强与扩展
---LinkedList 对数据增删较快
set 一个不包含重复元素的集合,此类的 iterator 方法返回的迭代器是快速失败 的
---TreeSet 使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。
---HashSet 它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。
Map 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
---HashMap 此实现提供所有可选的映射操作,并允许使用 null 值和 null 键,此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
---TreeMap 该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
二、线程
两种创建方式:1、继承Thread类,并覆写run()方法。2、实现Runlable接口,并覆写run()方法。
五种状态:1、创建状态 2、就绪状态(没有执行权) 3、运行状态 4、阻塞状态(sleep,wait) 5、消亡状态(run运行完了,打断interrput)
sleep()与wait()区别:都是线程的等待方法,
sleep()是Thread里面的方法,如果睡眠会阻塞在锁里面;
wait()则是Object里面的方法,如果停止则等候在锁外面;
同步的意义:当多条语句在操作同一线程共享数据时,一个线程对多条语句只执行了一部分,还没用执行完,另一个线程参与进来执行。导致共享数据的错误。对多条操作共享数据的语句,只能让一个线程都执行完。在执行过程中,其他线程不可以参与执行。 在java中对于多线程的安全问题提供了专业的解决方式——synchronized(同步) 这里也有两种解决方式,一种是同步代码块,还有就是同步函数。都是利用关键字synchronized来实现。
三、IO流
字节流 InputStream OutputStream
字符流FileReader FileWriter
此外还有功能流和装饰类的流,其中就有强大的RandomAccessFile对文件的随机访问,可以跳过N个字节写入读取,它存在使得多线程的下载有了可能。
对流功能增强的BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。
流的使用看程序的源和目的,
源如果是媒体文件则用字节流,如果用字符流可能导致数据损坏,因为字符流字节流封装每次进行了查编码表操作。
一般文本文件会使用字符流,效率相对较高。
|
|