互联网公司面试总结(Java岗),内容全面一学就会

168 阅读6分钟

前些天在网上看到一位大牛的面试总结挺有感触的,然后为大家总结了这篇文章(包含一些面试经验+高频面试原题+一些自己整理的面试资料

多数的公司总体上面试都是以自我介绍+项目介绍+项目细节/难点提问+基础知识点考核+算法题这个流程下来的。有些公司可能还会问几个实际的场景类的问题,这个环节阿里是必问的,这种问题通常是没有正确答案的,就看个人的理解,个人的积累了。剩下的就没啥了,都是换汤不换药,聊项目就看你自己对你自己的项目是否理解的透彻,比如经常问你你为什么选择这个技术,为什么这么处理之类的,常考的基础的知识点就那么多,最后算法就是靠刷题。

下面我就跟大家来简单总结一下面试高频考题跟我自己的学习思路:

1、ZooKeeper

  1. CAP定理\
  2. ZAB协议\
  3. Leader选举算法和流程

学习时的思维导图:

还给大家准备了java初级到高级的学习路线点击领取

面试题文档(含答案):

2、Redis

  1. Redis的应用场景\
  2. Redis支持的数据类型(必考)\
  3. zset跳表的数据结构(必考)\
  4. Redis的数据过期策略(必考)\
  5. Redis的LRU过期策略的具体实现\
  6. 如何解决Redis缓存雪崩,缓存穿透问题\
  7. Redis的持久化机制(必考)\
  8. Redis的管道pipeline

学习时的思维导图:

面试题文档(含答案):

3、Mysql

  1. 事务的基本要素\
  2. 事务隔离级别(必考)\
  3. 如何解决事务的并发问题(脏读,幻读)(必考)\
  4. MVCC多版本并发控制(必考)\
  5. binlog,redolog,undolog都是什么,起什么作用\
  6. InnoDB的行锁/表锁\
  7. myisam和innodb的区别,什么时候选择myisam\
  8. 为什么选择B+树作为索引结构(必考)\
  9. 索引B+树的叶子节点都可以存哪些东西(必考)\
  10. 查询在什么时候不走(预期中的)索引(必考)\
  11. sql如何优化\
  12. explain是如何解析sql的\
  13. order by原理

学习时的思维导图:

面试题文档(含答案):

4、JVM\

  1. 运行时数据区域(内存模型)(必考)\
  2. 垃圾回收机制(必考)\
  3. 垃圾回收算法(必考)\
  4. Minor GC和Full GC触发条件\
  5. GC中Stop the world(STW)\
  6. 各垃圾回收器的特点及区别\
  7. 双亲委派模型\
  8. JDBC和双亲委派模型关系\
  9. JVM锁优化和锁膨胀过程

学习时的思维导图:

面试题文档(含答案):

5、Java基础\

  1. HashMap和ConcurrentHashMap区别(必考)\
  2. ConcurrentHashMap的数据结构(必考)\
  3. 高并发HashMap的环是如何产生的\
  4. volatile作用(必考)\
  5. Atomic类如何保证原子性(CAS操作)(必考)\
  6. synchronized和Lock的区别(必考)\
  7. ThreadLocal的原理和实现\
  8. 为什么要使用线程池(必考)\
  9. 核心线程池ThreadPoolExecutor的参数(必考)\
  10. ThreadPoolExecutor的工作流程(必考)\
  11. 如何控制线程池线程的优先级\
  12. 线程之间如何通信\
  13. Boolean占几个字节\
  14. jdk1.8/jdk1.7都分别新增了哪些特性\
  15. Exception和Error\
  16. Object类内的方法

学习时的思维导图:


面试题文档(含答案):

6、Spring\

  1. Spring的IOC/AOP的实现(必考)\
  2. 动态代理的实现方式(必考)\
  3. Spring如何解决循环依赖(三级缓存)(必考)\
  4. Spring的后置处理器\
  5. Spring的@Transactional如何实现的(必考)\
  6. Spring的事务传播级别\
  7. BeanFactory和ApplicationContext的联系和区别

学习时的思维导图:


面试题文档(含答案):

其他 1. 高并发系统的限流如何实现2. 高并发秒杀系统的设计3. 负载均衡如何设计

学习时的思维导图:

面试题文档(含答案):

补充

另外还会考一些计算机网络,操作系统啊之类的。像消息队列,RPC框架这种考的比较少。计算机网络就是分层啊,tcp/udp啊,三次握手之类的。操作系统就是进程与线程啊,进程的数据结构以及如何通信之类的。数据结构的排序算法也比较常考,考的话一定会让你手写个快排。剩下的算法题就靠LeetCode的积累了。其实非算法岗考的算法题都蛮简单的,很多题完全就是考察你智力是否正常,稍微难点的涉及到一些算法思想的按照LeetCode题目类型的分类,每种题做一两道基本就能完全应付面试了。

面试感受及评价

除了外企,体验最好的就是阿里。绝对的脱颖而出,无论是面试官的专业程度还是面试官对参与面试人员的态度都完全突出于其他公司。非常尊重人,以及会引导我去作出正确的回答,唯一就是阿里的HR是非常强势的,永远有一票否决权。另外说明一下,年前的阿里是可以同时面多个部门的,用他们的话说:没事,我们偷偷的面。年后就不行了。而有些公司面试官会故意误导你,想方设法让你说出错误的答案,并且有些态度极其傲慢,让人感觉很不尊重人。这里点名批评面试体验最差的两家公司:美团和Boss直聘。外企的话,体验都很好。微软是英文面的,亚马逊不是。这俩都是以算法为主,微软除了算法还聊了操作系统和计算机网络,亚马逊聊了较长时间的项目细节。

另外除了技术,你所接触的业务也是面试中对方比较在乎的点,换句话说你的业务也限制了你的发展。比如一个高德地图的开发去面百度地图肯定是比较好过的。像我这种做toB业务的去面toC业务的岗,除非技术很拔高,不然很难过。

由于篇幅限制小编无法全部文档展示出来给大家,需要的小伙伴点击此处即可获取啦~


额外分享算法

目录总述