算法可以参考如上,主要是hot100和面试题150,以及部分LCR题目。性价比最高,就赌刷原题,如果有时间,要参加竞赛,那么可以考虑参加周赛稳定三题的水平很够用,已经是10%左右的水准。
相关技术栈准备参考如下内容
1. Java核心
- 基础深入:集合框架(HashMap底层、ConcurrentHashMap优化)、多线程(线程池参数、锁优化、AQS)、JVM(内存模型、GC调优、类加载机制)、IO/NIO。
- 新特性:熟悉Java 8+的Stream API、Lambda、CompletableFuture等,部分公司会问Java 17+的新特性(如虚拟线程)。
- 源码阅读:尝试阅读ArrayList、HashMap、ThreadPoolExecutor等常用类的源码。
2. 数据库
- MySQL:索引优化(B+树、覆盖索引)、事务隔离级别、MVCC原理、慢查询优化。推荐《高性能MySQL》。
- Redis:数据结构应用场景(Zset实现延迟队列)、持久化机制、缓存穿透/雪崩解决方案、分布式锁(Redisson)。
- 分库分表:了解ShardingSphere、MyCat等中间件。
3. 框架与中间件
- Spring:IoC/AOP原理、Spring Boot自动配置、Spring事务传播机制。推荐手写简化版Spring框架。
- 分布式:Dubbo(SPI机制、集群容错)、Spring Cloud Alibaba(Nacos、Sentinel)、RPC原理。
- 消息队列:Kafka(高吞吐原理、ISR机制)、RocketMQ(事务消息、顺序消息)。
- ORM:MyBatis缓存机制、动态SQL优化。
4. 系统设计
- 高频题型:设计短链系统、秒杀系统(分层削峰、库存一致性)、分布式ID生成(雪花算法)。
- 扩展学习:CAP理论、分布式事务(Seata)、服务网格(Istio)。
建议双非同学,至少先有一段三个月及以上的实习(对口)经历后,再考虑投正式,不然的话,基本会报 ZERO 异常。
除非你简历有ACM金银、开源社区等等,在大多数情况下,有这些觉悟的人已经早早有了实习,因此基本是个悖论。
差的越差,好的越好,如此恶性循环往复!
有实习、秋招面试,要做好录音复盘,千万别面一场什么收获都没得到,这些只会让机会越来越少!
全部评论
(6) 回帖