写在开篇的思路
2020年是多灾难的一年,对于我们每个人来说,健康地活着比什么都重要。受到疫情的影响,很多公司都过得比较艰难,裁员更是普遍,所以对大部分来说保住饭碗就很不错了,更别说什么跳槽晋升了。
但今年的我,似乎要比很多人幸运,专科出身,起点很低了,在看重学历的一众大厂中杀出一条血路。工作两年我就跳槽进入了网易,在网易待了3年,现在竟到了腾讯。身边很多人都好奇,我究竟是怎么做到的?下面就来分享一下我这些年是怎么快速晋升的,希望能够给你带来一些启发和帮助吧。
本文主要分享4个点,可按需来阅读:
- Share1:阿里Java岗面试题
- Share2:苏宁开发三年,我如何积累经验?
- Share3:5年开发经验,如何跳槽阿里?
- Share4:如何提升阿里社招面试通过率?
Share1:阿里Java岗面试题
(1)Zookeeper 部分
- CAP定理
- ZAB协议
- leader选举算法和流程
(2)Redis 部分
- Redis的应用场景
- Redis支持的数据类型(必考)
- zset跳表的数据结构(必考)
- Redis的数据过期策略(必考)
- Redis的LRU过期策略的具体实现
- 如何解决Redis缓存雪崩,缓存穿透问题
- Redis的持久化机制(必考)
- Redis的管道pipeline
(3)Mysql 部分
- 事务的基本要素
- 事务隔离级别
- 如何解决事务的并发问题(脏读,幻读)?
- MVCC多版本并发控制?
- binlog,redolog,undolog都是什么,起什么作用?
- InnoDB的行锁/表锁?
- myisam和innodb的区别,什么时候选择myisam?
- 为什么选择B+树作为索引结构?
- 索引B+树的叶子节点都可以存哪些东西?
- 查询在什么时候不走(预期中的)索引?
- sql如何优化?
- explain是如何解析sql的?
- order by原理
(4)JVM 部分
- 运行时数据区域(内存模型)
- 垃圾回收机制
- 垃圾回收算法
- Minor GC和Full GC触发条件
- GC中Stop the world
- 各垃圾回收器的特点及区别
- 双亲委派模型
- JDBC和双亲委派模型关系
(5)Java 基础部分
- HashMap和ConcurrentHashMap区别
- ConcurrentHashMap的数据结构
- 高并发HashMap的环是如何产生的?
- volatile作用
- Atomic类如何保证原子性(CAS操作)
- synchronized和Lock的区别
- 为什么要使用线程池?
- 核心线程池ThreadPoolExecutor的参数
- ThreadPoolExecutor的工作流程
- 如何控制线程池线程的优先级
- 线程之间如