java面试必知必会
java面试必知必会 对比 Vector、ArrayList、LinkedList 有何区别 Hashtable、HashMap、TreeMap 有什么不同 Hashtable、HashMap、TreeMap心得 如何保证容器是线程安全的?ConcurrentHashMap 如何实现高效地线程安全? Java 提供了哪些 IO 方式? NIO 如何实现多路复用? Java 有几种文件拷贝方式?哪一种最高效? 谈谈接口和抽象类有什么区别? 面向对象设计 面向对象编程,掌握基本的设计原则S.O.L.I.D 原则 谈谈你知道的设计模式?请手动实现单例模式,Spring 等框架中使用了哪些模式? synchronized 底层如何实现?什么是锁的升级、降级? 免责声明 对比 Vector、ArrayList、LinkedList 有何区别 这三者都是实现集合框架中的 List,也就是所谓的有序集合,因此具体功能也比较近似,比如都提供按照位置进行定位、添加或者删除的操作,都提供迭代器以遍历其内容等。但因为具体的设计区别,在行为、性能、线程安全等方面,表现又有很大不同 Vector 是 Java 早期提供的线程安全的动态数组,如果不需要线程安全,并不建议选择,毕竟同步是有额外开销的。Vector 内部是使用对象数组来保存数据,可以根据需要自动的增加容量,当数组已满时,会创建新的数组