本文收录在猪哥GitHub:https://github.com/pig6/Java 中,本我的项目收集一线大厂面试、实战、Java学习路线等。
本篇笔记是我五年来的工作学习面试教训&记录,心愿对大家有一些帮忙
一、java根底
- Object类的所有办法:getClass hashCode equals clone toString notify notifyAll wait finalize
- 八种根本数据类型&取值范畴
- 主动拆装箱&包装类型的缓存机制
- ThreadLocal 了解String&不可变性 StringBuffer StringBuilder源码
- ArrayList LinkedList HashMap(重点,能够花一天工夫彻底把握) LinkedHashMap TreeMap HashSet LinkedHashSet TreeSet源码
- 异样体系结构
- Java8:了解函数式编程 流式操作 CompletableFuture
二、并发编程
必考,高并发的解决必要伎俩,对于juc以及线程模型的演进过程的把握十分重要
- 了解并发与并行
- 线程池的原理:了解每个参数
- Thread Runnable Callable
- AQS(重要:经常会配合synchronized来说) Condition
- Lock:ReentrantLock ReentrantReadWriteLock
- Semaphore CountDownLatch CyclicBarrier
- 各种Atomic
- ConcurrentHashMap BlockingQueue CopyOnWriteArrayList
- Executors
- 线程的状态转换:wait sleep notify notifyAll join park
- 进行线程的办法
- 线程模型:了解BIO、NIO(重点)、AIO、理解netty
- 并发包就那些货色,把握AQS之后其余的很快就买通了,所以不必
三、jvm
《深刻了解java虚拟机》没事就看一遍,每次都会有新的了解
- jvm内存构造
- 罕用调优参数
- gc算法
- gc的工具:CMS&G1重点&ZGC
-
java内存模型:
- 可见性、原子性、程序性、happens-before、内存屏障、volatile、final
- synchronized(对象头):偏差锁->轻量级锁->重量级锁、monitor、锁优化、锁打消、锁粗化、自旋锁、可重入锁
- 常用工具以及命令
- 类加载过程
- 对象创立过程
- fullGC的排查思路
- 工具:jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, Arthas
四、设计模式
- 创立型:单例模式、形象工厂模式、建造者模式、工厂模式、原型模式。
- 结构型模式:适配器模式、桥接模式、装璜模式、组合模式、外观模式、享元模式、代理模式。
- 行为型模式:模版办法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。
五、mysql
上面列出来的全是重点
- 罕用sql以及内置函数
-
索引
- hash索引
- b+树的索引
- 汇集索引&非汇集索引
- 回表
- 联结索引:最左前缀&笼罩索引&索引下沉
- 事务&隔离级别&实现原理:readview undolog redolog mvcc
- 锁的应用&锁算法&行锁&表锁&乐观锁&乐观锁
- 连贯查问的原理(算法)
- binlog&应用场景
- 分库分表:垂直&程度
- 工具:explain
六、redis
《redis的设计与实现》看完这本书就行了,深入浅出,很快就可以看完和把握,间接搞定redis
- 纯熟五种类型对象&实用场景:字符串 列表 哈希 汇合 有序汇合
- 理解底层数据结构:SDS 链表 字典 跳跃表 整数汇合 压缩列表
- 淘汰策略
- RDB&AOF
- 复制性能的实现
- Sentinel&集群的构造
- 公布订阅&事务
- 分布式锁
- 常见问题&解决方案:缓存击穿,缓存穿透,缓存雪崩
七、web
感觉很少有人问了,应届生可能问的多些
- 三次握手与四次挥手
- http/1.0 http/1.1 http/2之间的区别
- http中 get和post区别
- 了解https加密过程
- forward&redirect的区别
- CSRF&XSS攻打与防备
- 常见的web申请返回的状态码
- cookie&session
- Servlet&filter&listener
- DNS
- tomcat&nginx区别
八、spring
说实话问到我的不多,感觉把握上面几个足够了
- IOC&DI&AOP
- 把握罕用注解
- 如何解决循环依赖
- 事务流传机制
- 事务生效场景
- springMVC的了解
- springboot的了解
九、分布式&高可用
平时多留神怎么解决好程序可能遇到的极其状况,保障服务的高可用
-
zookeeper
- 了解应用:文件系统+监听器
- 理解选举算法&分布式锁的实现
-
mq(重要,有时候面试官间接一串mq连环炮就能够决定要不要一个人了)
- 作用:异步 解耦 削峰
-
kafka(之后会就kafka写一个系列)
- 设计架构
- 如何保障高可用
- 如何保障高吞吐
- 如何实现部分有序
- 反复生产的问题
- 提早音讯
- 理解dubbo&spring cloud&Consul工作流程
- 限流&熔断:Hystrix/Resilience4j(高可用的必须中间件)
- 链路追踪(理解实现原理)
十、算法&数据结构
常刷leetcode
- 栈、队列、链表、数组、哈希表、树、堆、图
- 快排&二分&分治&递归&滑动窗口/双指针&BFS&DFS
十一、工具
- git多分支合作流程
- maven常用命令&生命周期
- linux常用命令:tail grep awk sed等等
备注
- 看着的确很失望,up自己也是
- 集体不免有盲区,欢送评论区斧正&补充,会继续更新
- but
- 种一棵树,最好的工夫是十年前,其次是当初,大家共勉
码字不易,欢送一键三连 关注猪哥!
发表回复