跳转至

阿里一面

背景:工作5年

LinkedHashMap的应用

cloneable接口实现原理

异常分类以及处理机制

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

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

wait和sleep的区别

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

数组在内存中如何分配

1_✅数组和链表有何区别?

AbstractQueuedSynchronizer

24_✅如何理解AQS?

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

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

Java 内存模型?

✅什么是Java内存模型?

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

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

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

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

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

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

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

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

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

32_✅CountDownLatch、CyclicBarrier、Semaphore区别?

LockSupport工具

Condition接口及其实现原理

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

Fork/Join框架的理解

✅ForkJoinPool和ExecutorService区别是什么?

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

BIO、NIO和AIO

36_✅什么是AIO、BIO和NIO?

Netty 的各大组件

Netty的线程模型

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

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

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

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

9_✅Netty有哪些序列化协议?

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

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

算法题

实现lru

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