本篇笔记是我五年来的工作学习面试经验记录,希望对大家有一些帮助一、Java基础
Object类的所有方法:getClasshashCodeequalsclonetoStringnotifynotifyAllwaitfinalize
八种基本数据类型取值范围
自动拆装箱包装类型的缓存机制
ThreadLocal理解String不可变性StringBufferStringBuilder源码
ArrayListLinkedListHashMap(重点,可以花一天时间彻底掌握)LinkedHashMapTreeMapHashSetLinkedHashSetTreeSet源码
异常体系结构
Java8:理解函数式编程流式操作CompletableFuture
二、并发编程(必考,高并发处理的必要手段,对于juc以及线程模型的演进过程的掌握非常重要)
理解并发与并行
线程池的原理:理解每个参数
ThreadRunnableCallable
AQS(重要:常常会配合synchronized来说)Condition
Lock:ReentrantLockReentrantReadWriteLock
SemaphoreCountDownLatchCyclicBarrier
各种Atomic
ConcurrentHashMapBlockingQueueCopyOnWriteArrayList
Executors
线程的状态转换:waitsleepnotifynotifyAlljoinpark
停止线程的方法
线程模型:理解BIO、NIO(重点)、AIO、了解netty
并发包就那些东西,掌握AQS之后其他的很快就打通了,所以不用
三、jvm(《深入理解java虚拟机》每年都至少看一遍,每次都会有新的理解)
jvm内存结构
常用调优参数
gc算法
gc的工具:CMSG1重点ZGC
java内存模型:
可见性、原子性、顺序性、happens-before、内存屏障、volatile、final
synchronized(对象头):偏向锁-轻量级锁-重量级锁、monitor、锁优化、锁消除、锁粗化、自旋锁、可重入锁
常用工具以及命令
类加载过程
对象创建过程
fullGC的排查思路
工具:jps,jstack,jmap、jstat,jconsole,jinfo,jhat,javap,Arthas
四、设计模式
创建型:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。
五、mysql(下面列出来的全是重点)
常用sql以及内置函数
索引
hash索引
b+树的索引
聚集索引非聚集索引
回表
联合索引:最左前缀覆盖索引索引下沉
事务隔离级别实现原理:readviewundologredologmvcc
锁的使用锁算法行锁表锁乐观锁悲观锁
连接查询的原理(算法)
binlog使用场景
分库分表:垂直水平
工具:explain
六、redis(《redis的设计与实现》看完这本书就行了)
熟练五种类型对象适用场景:字符串列表哈希集合有序集合
了解底层数据结构:SDS链表字典跳跃表整数集合压缩列表
淘汰策略
RDBAOF
复制功能的实现
Sentinel集群的结构
发布订阅事务
分布式锁
常见问题解决方案:缓存击穿,缓存穿透,缓存雪崩
七、web(感觉很少有人问了,应届生可能问的多些)
三次握手与四次挥手