✅阿里一面

背景:工作5年

LinkedHashMap的应用

cloneable接口实现原理

异常分类以及处理机制

✅Java中异常分哪两类,有什么区别?

✅以下关于异常处理的代码有哪些问题

wait和sleep的区别

✅run/start、wait/sleep、notify/notifyAll区别?

数组在内存中如何分配

✅数组和链表有何区别?

AbstractQueuedSynchronizer

✅如何理解AQS?

如何检测死锁?怎么预防死锁?

✅什么是死锁,如何解决?

Java 内存模型?

✅什么是Java内存模型?

如何保证多线程下 i++ 结果正确?

✅如何保证多线程下 i++ 结果正确?

分析线程池的实现原理和线程的调度过程?

✅什么是线程池,如何实现的?

线程池如何调优,最大数目如何确认?

✅线程数设定成多少更合适?

ThreadLocal原理,用的时候需要注意什么?

✅什么是ThreadLocal,如何实现的?

CountDownLatch 和 CyclicBarrier 的用法,以及相互之间的差别?

✅CountDownLatch、CyclicBarrier、Semaphore区别?

LockSupport工具

Condition接口及其实现原理

✅Java中的集合类有哪些?如何分类的?

Fork/Join框架的理解

✅ForkJoinPool和ExecutorService区别是什么?

分段锁的原理,锁力度减小的思考

BIO、NIO和AIO

✅什么是AIO、BIO和NIO?

Netty 的各大组件

Netty的线程模型

✅Netty的线程模型是怎么样的?

TCP 粘包/拆包的原因及解决方法

✅Netty如何解决TCP粘包、拆包的问题的?

了解哪几种序列化协议?包括使用场景和如何去选择

✅Netty有哪些序列化协议?

Redis的并发竞争问题如何解决

✅Redis为什么被设计成是单线程的?

算法题

实现lru

✅实现一个LRU缓存淘汰策略,支持get和put操作

原文: https://www.yuque.com/hollis666/xkm7k3/uighyxsyn5rzc6vf