多线程: 1:多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 两种实现方法: A、继承Thread类,并重写run()方法 B、实现Rannable接口,并实现run()方法 同步两种: A、代码块同步,锁对象可以使任意对象 B、方法同步,此时锁为当前对象 2:启动一个线程是用run()还是start()? start()方法 run()方法只是单单运行了run()里边的代码,并没有启动线程 start()方法在启动一个线程的同时,又运行了run()方法 3:sleep() 和 wait() 有什么区别? sleep(long m)方法接受一个毫秒参数,表示使当前调用的线程休息m毫秒,此时放弃了CPU执行权,但是没有释放所对象,当自己醒来时会继续执行 wait()方法表示当前调用线程进入等待状态(即阻塞状态),此时不但放弃了CPU执行权,也放弃了锁对象,此时只能被别人唤醒,唤醒之后进入可执行状态 4:线程的基本概念及线程的生命周期. 进程:在计算机中运行的一个应用程序 线程:进程中的执行单元,执行路径 单线程:一个进程中只有一个执行路径 多线程:一个应用程序中有多个执行路径 生命周期:创建状态、就绪状态、执行状态、阻塞状态、死亡状态。 集合: 1: HashMap和Hashtable的区别 HashMap:A、可以存储null键null值 B、线程不安全,效率高 Hashtable:A、不可以存储null键null值 B、线程安全,效率低 2:Collection 和 Collections的区别。 Collection是一个接口,该集合体系的根接口,存储的元素可以重复也可以 不重复。 Collections是一个针对集合体系提供的工具类,内部方法全部静态,方便的 对集合的操作 3: List, Set, Map是否继承自Collection接口? List和Set继承自Clooection接口,他们都是单列集合 Map是双列集合,元素是由一个键值对组成 4:说出ArrayList,Vector, LinkedList的存储性能和特性? ArrayList:底层数据结构为数组,查询快,增删慢,线程不安全,效率高 Vector:底层数据结构为数组,查询快,增删慢,线程安全,效率低 LinkedList:底层数据结构为链表,查询慢,增删快,线程不安全,效率高 5:你所知道的集合类都有哪些?主要方法? ArrayList: 添加:boolean add(),boolean add(int index ,E e) 获取: E get(int index), 删除:clear(),E remove(),remove(Object o) 长度:int size(),isEmpty() LinkedList: 添加:addFirst(),addLast() 删除:removeFirst(),removeLast 获取:getFirst(),getLast() 长度:int size() HashSet: 添加:add() 删除:remove() 判断:isEmpty() 长度:int size() TreeSet: 添加:add() 删除:remove() 获取:last(),first(), HashMap: TreeMap: IO: 1: java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 按照功能:节点流,辅助流 按照数据:字节流,字符流 按照方向:输入流,输出流 输入流: InputStream Reader 输出流: OutputStream Writer
2:什么是java序列化,如何实现java序列化? 序列化:将对象通过流输出到文本或者在网络上传输 要实现序列化必须实现序列化接口Serializable
|