JAVA 程序员怎么样才能进一线互联网公司

一面:(80 分 32 秒)

1. 自我介绍?

2. 做过哪些项目?项目中遇到哪些难点,你是怎样解决的?单点登录系统说一下?分布式缓存的使用场景?(说好的基础呢,上来就是项目,毫无准备,导致好多东西都记不起来了。面试官还说“那你说一个你记得的项目”,手动无奈。。。)

3. 你实习的时候 JDK 用的是那个版本,这个版本有什么新的特性?

4.G1 回收器和其他回收器有什么区别?

5. 垃圾回收为什么会停顿?哪些对象可能作为 GCRoots?

6. 垃圾回收分代收集算法?为什么会有两个 Survivor 区?new 一个对象会保存在哪里?

7.Java 内存模型?volatile 关键字,使用场景?原子性的理解?先行发生原则?

8. 场景题:现在有三个线程,同时 start,用什么方法可以保证线程执行的顺序,线程一执行完线程二执行,线程二执行完线程三执行?

9. 你是怎么理解线程安全的?HashMap 是线程安全的么?如果多个线程同时修改 HashMap 时会发生什么情况?

10.ConcurrentHashMap 底层原理?每个版本的实现上有什么区别?

11. 静态代理和动态代理的区别?动态代理是怎么实现的?

12. 深拷贝和浅拷贝的区别?

13. 你做过 hadoop 的项目,为什么要用 hadoop?你们处理的文件是什么格式的?写了几个 mapper 几个 reducer?

14.zookeeper 你们用了几台,用来干什么的?一般情况下都是奇数台,那么如果一台挂了,偶数台如何实现 master 选举?zookeeper 的两种启动模式?

15.TCP 首部?TCP 为什么是可靠的?三次握手四次挥手?

16.Solr 是如何建立索引的? Lucene 的底层原理?

17. 你平时喜欢做什么?看过哪些书?最近在看什么书?(这里有个段子,我:最近在看《HTTP 权威指南》。面试官:什么?HTTP 潜规则?我:???)

二面: (47 分钟)

1. 你那边怎么有点黑啊?(我靠,我也想说啊,暑假寝室集中供电,然而我们寝室没有电。发面经也不忘吐槽学校,简直坑啊。。。抱着台灯瑟瑟发抖。。。)

2. 现在在哪里实习?实习主要做些什么?

3. 说一下 Java 里面你最感兴趣的一个部分?

4. 熟悉 Java 的哪些框架?用了 Spring 的哪些东西?Spring 现在最新的版本是多少?

5. 讲一下 MVC 设计模式,有什么框架用到了这个模式?

6. 场景题:一个 Controller 调用两个 Service,这两 Service 又都分别调用两个 Dao,问其中用到了几个数据库连接池的连接?

7. 安全方面:如何防止 SQL 注入?如何防止用户删除其他用户的信息?表单提交可以跨域么?自己写的接口如何防止被其他人恶意调用?

8.zookeeper 偶数选举问题?(感觉很重视 zookeeper 啊)

9.hadoop 为什么要将文件分块并且复制三份,复制两份不行么?这样不浪费空间么?namenode 脑裂问题?zookeeper 如何管理全局配置文件?你们的 Hadoop 项目用到了几台机器,每个机器的作用?

10.Servlet 是线程安全的么?

11. 创建一个对象的详细过程?其中发生了些什么?

12.Java NIO 你了解么?讲一讲你最熟悉的部分?

13. 你在生活中有没有遇到什么神奇的事情,可以分享一下么?比如洒水车为什么老是在阴天或者快下雨的时候洒水?还有我和我老婆经常吵,阳台的花是早上浇好呢,还是晚上浇好呢?(我靠,这是什么套路)

14. 你认为你身边的同学怎么样?如果你正在打游戏,你想让同学帮忙带瓶水,你觉得有多少人会帮你带?(这又是什么套路?让我去送水?)

15. 你还有什么想问的?

三面:(HR 面,22 分钟)

1.7 岁一个阶段,说一说每一个阶段对你影响最大的一个人或事?

2. 说一下你大学阶段做了些什么?

3. 你感觉你前两个面试官怎么样?

4. 春招的时候为什么没有去 bat 实习?

5. 你当初准备暑期实习的话,是想学到些什么?现在感觉自己有哪些进步?

6. 你还有什么想问的?(当然是万能的培养计划和晋升机制)

四面:(交叉面,30 分钟)

1. 自我介绍?

2. 说一下最能代表你技术水平的项目吧?

3.maven 如何进行依赖管理,如何解决依赖冲突?

4.maven 的源和插件了解哪些?maven 的生命周期?

5. 如何保证分布式缓存的一致性?分布式 session 实现?

6.spring 的 bean 的创建时机?依赖注入的时机?

7. 你们的图片时怎么存储的,对应在数据库中时如何保存图片的信息的?

8. 单点登录系统的实现?

9. 项目中用到的 JDK 的哪些特性?

10.java8 流式迭代的好处?

11. 多线程如何在多个 CPU 上分布?线程调度算法有哪些?

12. 线程调度和进程调度的区别?

13. 项目中用到了哪些集合类?

14. 说一下 TreeMap 的实现原理?红黑树的性质?红黑树遍历方式有哪些?如果 key 冲突如何解决?setColor() 方法在什么时候用?什么时候会进行旋转和颜色转换?

15. 你有什么想问的?

那如何学习才能快速入门并精通呢?

为了让学习变得轻松、高效,今天给大家免费分享一套阿里架构师传授的一套教学资源。帮助大家在成为架构师的道路上披荆斩棘。

这套视频课程详细讲解了(Spring,MyBatis,Netty 源码分析,高并发、高性能、分布式、微服务架构的原理,JVM 性能优化、分布式架构)等成为架构师必备的内容!

欢迎工作一到五年的 Java 的工程师朋友们加入的 Java 架构开发:685–167-672, 就可以马上免费获得这套价值一万八的内部教材!

最后,做一个爱思考,懂思考,会思考的程序员。

作者:美得让人心动
链接:https://juejin.im/post/5b82599e6fb9a019be27aa9e
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。