
- Java相关
- Java基础、JVM、并发、设计模式
目录
- # 1. 基础
- 1-1. Java 异常有哪些类型? 1-2. HashMap 与 ConcurrentHashMap 的实现原理是怎样的? 1-3. Java 中接口和抽象类的区别 1-4. 为什么重写 equals 必须重写 hashcode ? 1-5. == 和 equals() 的区别? 1-6. String,StringBuffer,StringBuilder 之间有什么区别? 1-7. 简述 ArrayList 与 LinkedList 的底层实现以及常见操作的时间复杂度 1-8. 简述 BIO, NIO, AIO 的区别 1-9. 在一个静态方法内调用一个非静态成员为什么是非法的? 1-10. 简述 Java 的反射机制及其应用场景 1-11. Java 类的加载流程是怎样的? 1-12. 什么是双亲委派机制? 1-13. Java 中 sleep() 与 wait() 的区别 1-14. 简述 Java 中 final 关键字的作用 1-15. String 类能不能被继承?为什么? 1-16. Java 缓冲流 buffer 的用途和原理是什么? 1-17. 简述动态代理与静态代理 1-18. 阻塞队列都有哪几种,有什么区别? 1-19. 简述 HashSet 实现原理
- # 2. 并发
- 2-1. 线程池是如何实现的? 2-2. 简述 CAS 原理,什么是 ABA 问题,怎么解决? 2-3. 简述 Synchronized,Volatile,可重入锁的不同使用场景及优缺点 2-4. Synchronized 与 Lock 相比优缺点分别是什么? 2-5. 重入锁是如何实现的? 2-6. volatile 关键字解决了什么问题,它的实现原理是什么? 2-7. 简述 Java 锁升级的机制 2-8. 简述 Java AQS 的原理以及使用场景 2-9. 什么是公平锁?什么是非公平锁? 2-10. Java 的线程有哪些状态,转换关系是怎么样的? 2-11. Java 是如何实现线程安全的,哪些数据结构是线程安全的? 2-12. 手写死锁 2-13. 为什么我们不能直接调用 run() 方法? 2-14. Java 线程有哪些常用方法? 2-15. 手写生产者消费者模型 2-16. ThreadLocal 实现原理是什么?为什么要使用弱引用?
上次更新: 2022/05/19, 21:26:01