java 基础


Java基础:各种基础容器的原理、虚拟机(内存分区、GC)、多线程(CAS、AQS、线程池、锁分类及原理)

数据库:Mysql基础,事务隔离,InnoDB存储引擎原理,MVCC和锁

分布式缓存:redis、memcache等的原理、协议、区别、集群部署

Spring:AOP和IOC

分布式系统:CAP、分布式事务、分布式一致性原理

MQ消息队列:比如kafka(底层原理,包括数据存储、HA,消息必达以及幂等实现方式等)

RPC:dubbo、GRPC、Spring cloud等

还有一些公司比较喜欢问算法题,比如头条(据说还让人手写红黑树实现,不过没给我面试机会)、腾讯、阿里等,这就需要额外准备下:

常用的数据结构:各种树、图论

常用的排序算法:堆排序、快速排序、归并排序

刷题:剑指offer、leetcode首选

对于每一个知识点,最好都深入了解下,面试官都喜欢刨根问底深入底层原理,简单拿HashMap来说,一般面试官首先会问你HashMap的原理,然后从你的回答中继续让你解释HashCode的作用,再从你的回答中继续让你解释HashMap如何计算Hash值,再从你的回答中继续让你解释HashMap的扩容原理,再从你的回答中引出红黑树(JDK1.8之后HashMap开始使用红黑树)。一个HashMap就可以考察一个人的Java基础、算法基础、数据结构基础、对最新JDK的了解程度、深究底层原理的能力。
对于阿里和腾讯有个tip就是,如果某个岗位面挂了,还可以再投其他事业部,不过再投之前要好好准备下,每一次面试记录都会被保存。从去年12月就开始看机会,先拿一些小公司练手,然后在投大公司。


LinkedBlockingQueue
ArrayBlockingQueue

posted @ 2018-09-26 16:15  yc5518  阅读(56)  评论(0编辑  收藏  举报