集合,迭代器这些都和c++差不多;List,LinkList,Arrays,ArrayList,Queue,Stack,Iterator;
具体实现在c语言中和数据结构课程中有;
映射表
map,是key/value结构,也就是键值对,如果提供了键,就可以找到值;java提供了两个通用的实现HashMap和TreeMap,散列表没有排序,对键进行散列,树映射表用键对元素进行排列,形成搜索树;两者都实现了Map接口;散列或者比较函数只能作用于键,与键关联的值不能进行比较或散列,键必须唯一,用remove来删除对应元素,size返回个数;
获取键对应的值: get(key);
将键值对映射到表中,如果存在了,则覆盖为新的值;
putAll()将映射表加入另个映射表;
Set<Map.Entry<K,V>> entrySet()
返回map所有对象,可以删除,但不能添加;
Collection<v> values();返回映射表中的所有值的集合,可以删除不能添加;
Set<K> keySet()返回所有键的集合,可以删除元素,但是无法添加;
getKey() 返回这个条目的键;
getVlaue()返回这个条目的值;
多线程
线程,一个进程可以有多个线程,这里定义自己领悟;
线程,是继承与Thread类或实现Runable()接口;
当用实现Runable接口定义线程时为:
xxx extends Runable();
xxx a=new xxx();
Thread t=new Thread(a);
进程主要运行的是run()里的语句
因为实现Runable接口就是实现了run方法,启动线程则xxx.start();
sleep()阻塞进程多少毫秒1000ms=1s;
join()等待线程;setPriority()设置优先级;
互斥锁关键字synchronized加在方法前面,在返回类型之前;
ReenranLock显式锁类
lock();获取锁;
文件读取
先定义文件路径,然后定义输入流对象,然后定义输入writer方法(),写入文件;
读取文件,则为先定义输出流,定义输出流读取对象,读取;
在java中,可以从其读入一个字节流序列的对象叫做输入流,可以从中写入一个字节流对象的吉奥组输出流,这些字节流的来源可以是文件或者是网络连接,内存块等等。
读取,输入流,写入,输出流;
定义一个输入输入流对象,然后使用其中的read方法或者是write方法,然后关闭流;其中输入输出流对象的write方法和read方法,都是以字节为单位,但是从Reader,Writer中继承来的读写方法都是以Unicode的双字节形式读取;
流分为处理字节和处理字符,DataInput是处理字符的;
正如FileInputStream没有任何读入数值类型方法一样,DataInputStream也没有热何从文件中获取数据的方法;
Java使用了一种灵巧的机制来分离这两种职责;,某些流(例如FileInputSream,URL类的openStream方法返回的输入流)可以从文件和其他外部的位置上获得字节,而其他流(例如DataInputStream和PrintWriter)可以将字节组装成更有用的数据类型;java程序员必须将其组合,首先创建一个流读入数据,例如FileInputStream然后将其传递给DataInputStream的构造器作为参数,然后调用相应的读写方法;
当然,如果你不要求数据类型的话你也可以直接调用读取数据的那个流的read或write的方法;
如果创建一个带缓冲区的流,只有当缓冲区写满或者被强行冲刷的时候才会写出;