面试-java基础(4)
- 如何保证集合容器的并发安全以及concurrentHashMap如何实现高效的并发
java提供不同层面的并发容器,包括传统的类似HashTable\Vector等安全容器,也提供啦Collections工具类的同步包装器,基本是通过Synchornized来实现的粗粒度线程安全,另外一部分是并发包提供的并发容器,类似于ConcurrentHashMap、ArrayBlockingQueue、CopyOnWriteArrayList,其中ConcurrentHashMap是通过分离锁实现。
- 常见的IO,以及NIO
传统的IO包,java.io基础流模型,交互方式是同步、阻塞的
java.nio包提供啦channel、buffer、selector可以构建多路复用实现同步非阻塞
aio是对nio的升级,通过事件回调方式,实现异步非阻塞
NIO TransferTo零copy,不需要用户态的切换
Nio-scatter机制
- 谈谈你对设计模式理解
创建型模式:工厂、单例、原型、构建器
结构型模式:桥接、代理、适配器、享元、组合、外观、装饰
行为型模式:策略、解释器、观察者、访问者、模板方法、迭代器、命令
六大原则,总的原则:开闭原则, 1.单一原则2离氏替换原则3依赖倒转原则4接口隔离原则5迪米特原则6合成复用原则