8月初参加了网易秋招提前批(Java岗),总共3面,但是问题的却不少,分布式架构/Spring框架/高并发/设计模式/微服务/其他问题等全都有。整个流程走下来,感觉还是挺顺利的吧,回家让我等通知,不过两天过去了还没收到意向书(内心有点煎熬)...等待的这两天也整理了下这次的面经,挑出来做个分析与分享,望快点上岸...

 

此次将网易的面经按照各知识点分块,先是列举分布式架构/Spring框架/高并发/设计模式/微服务等各知识点的面试问题,文末会再统一总结我的心得

网易秋招提前批(Java岗)面经分析

  • 高并发(一面+二面)

一面:java concurrent包下的的东西,和其中的实现,concurrentHashMap原理和ThreadPoolExcutor原理
一面:hashmap原理
一面:使用concurrent包下的来实现生产者消费者
二面:ArrayList和LinkedList
二面:死锁怎么预防?怎么检测死锁?
二面:手写线程安全的单例模式

  • Spring框架(一面+二面)

一面:spring特性,ioc,aop原理及实现
二面:spring事务,spring事务实现原理。抛出异常之后回滚情况。启动的线程中出现异常会如何处理

  • 分布式架构(一面+二面)

一面:分布式事务处理
二面:memcached扩容,memcached原理

  • 微服务(一面)

一面:微服务的架构介绍,微服务与SOA的区别
一面:项目用到了spring cloud什么组件,分别作用是什么,原理是什么

  • 其他(二面)

二面:java反射原理
二面:linux常用命令,如何查看日志

  • 网易秋招提前批的三面

整个三面都是围绕着项目展开的,可以说三局不离项目...

 

网易秋招提前批(Java岗)面试总结

1. 网易在互联网这块非常看重Spring框架细节:比如IOC、AOP、Spring事物处理的使用细节等问题(看一眼我手绘的这三个方面问题的知识脑图,其次就是关于Spring的面试)

 

 

 

针对Spring这一块,面试方面建议可以刷刷这个【Spring灵魂100问(附解析)】

(一)基本概念面试题集( Spring 相关概念梳理)
1. 谈谈对 Spring IoC 的理解?
2. 谈谈对 Spring DI 的理解?
3. BeanFactory 接口和 ApplicationContext 接口不同点是什么?
4. 请介绍你熟悉的 Spring 核心类,并说明有什么作用?
5. 介绍一下 Spring 的事务的了解?
6. 介绍一下 Spring 的事务实现方式?
7. 解释 AOP 模块
8. Spring 的通知类型有哪些,请简单介绍一下?
9. Spring 通知类型使用场景分别有哪些?
10. 请介绍一下你对 Spring Beans 的理解?
11. Spring 有哪些优点?
12. 在Spring中使用hibernate的方法步骤
13. Spring 和 Struts 的区别?
14. Spring 框架由哪几部分组成?
15. 谈谈你对 BeanFactory的理解,BeanFactory 实现举例
16. 谈谈对 Spring 中的 Web 模块的理解
17. BeanFactory 和 Application contexts 有什么区别?
18. 谈谈你对 Spring 依赖注入的理解?
19. 什么是 Bean 装配?
20. 什么是 Bean 的自动装配?
21. 介绍一下自动装配有几种方式?
22. 什么是基于注解的容器配置?
23. 简述 JdbcTemplate 类的作用
24. 解释 AOP 25. 解释 Aspect 切面
26. 简述 Spring AOP 中的通知
27. Spring AOP 中的植入你怎样理解?
28. 请详细介绍一下 Spring MVC 的流程?
29. Spring 配置文件?
30. @RequestMapping 注解用在类上面有什么作用
31. 怎么样把某个请求映射到特定的方法上面
32. 谈谈 Spring 对 DAO 的支持
(二)应用场景面试题集(各知识点不同使用场景选型)
33. Spring 配置 Bean 实例化有哪些方式?
34. Bean 注入属性有哪几种方式
35. 在 Spring 中如何实现时间处理?
36. Spring 中如何更高效的使用 JDBC ?
37. 请介绍一下设计模式在 Spring 框架中的使用?
38. 讲讲 Spring 框架的优点有哪些?
39. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入?
40. 你怎样定义类的作用域?
41. 解释 Spring 支持的几种 Bean 的作用域
42. 在 Spring 中如何注入一个 Java 集合?
43. 你可以在 Spring 中注入一个 null 和一个空字符串吗?
44. 什么是基于 Java 的 Spring 注解配置? 给一些注解的例子
45. 你更倾向用哪种事务管理类型?
46. Bean 的调用方式有哪些?
47. Spring MVC 里面拦截器是怎么写的
48. 当一个方法向 AJAX 返回特殊对象,比如 Object、List 等,需要做什么处理?
49. 如何使用 Spring MVC 完成 JSON 操作
50. Spring 如何整合 Hibernate
51. Spring 如何整合 Struts2 ?
52. 开发中主要使用 Spring 的什么技术 ?
53. 介绍一下 Spring MVC 常用的一些注解
54. Spring 框架的事务管理有哪些优点
(三)深度度知识面试题集(底层实现原理详解)
55. IoC 控制反转设计原理?
56. Spring 的生命周期?
57. Spring 如何处理线程并发问题?
58. 核心容器(应用上下文)模块的理解?
59. 为什么说 Spring 是一个容器?
60. Spring 的优点?
61. Spring 框架中的单例 Beans 是线程安全的么?
62. Spring 框架中有哪些不同类型的事件?
63. IoC 的优点是什么?
64. 解释 Spring 框架中 Bean 的生命周期
65. 什么是 Spring 的内部 Bean?
66. 自动装配有哪些局限性 ?
67. Spring 框架的事务管理有哪些优点?
68. 在 Spring AOP 中,关注点和横切关注的区别是什么?
69. 说说 Spring AOP 的底层实现原理?
70. 如何给 Spring 容器提供配置元数据?
71. 哪些是重要的 Bean 生命周期方法? 你能重载它们吗?
72. 讲下 Spring MVC 的执行流程
73. Spring MVC 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
74. Spring 中循环注入的方式?
75. Spring MVC 比较 Struts2
(四)拓展内容面试题集(Spring Boot 相关题集)
76. 什么是 Spring Boot?
77. Spring Boot 自动配置的原理?
78. Spring Boot 读取配置文件的方式?
79. 什么是微服务架构?
80. Ribbon 和 Feign 的区别?
81. Spring Cloud 断路器的作用?
82. 为什么要用 Spring Boot?
83. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
84. Spring Boot 的配置文件有哪几种格式?它们有什么区别?
85. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
86. 开启 Spring Boot 特性有哪几种方式?
87. Spring Boot 需要独立的容器运行吗?
88. 运行 Spring Boot 有哪几种方式?
89. 你如何理解 Spring Boot 中的 Starters?
90. 如何在 Spring Boot 启动的时候运行一些特定的代码?
91. Spring Boot 有哪几种读取配置的方式?
92. Spring Boot 实现热部署有哪几种方式?
93. Spring Boot 多套不同环境如何配置?
94. Spring Boot 可以兼容老 Spring 项目吗,如何做?
95. 什么是 Spring Cloud?
96. 介绍一下 Spring Cloud 常用的组件?
97. Spring Cloud 如何实现服务注册的?
98. 什么是负载均衡?有什么作用?
99. 什么是服务熔断?
100. 请介绍一下 Ribbon 的主要作用?

 

 

2. 其次就是高并发这块,比如:ConcurrentHashMap原理

关于ConcurrentHashMap,不如先来看这八连问?

1.ConcurrentHashMap与HashMap有什么区别?
2.说一下ConcurrentHashMap的工作原理,put()和get()的工作流程是怎样的?
3.ConcurrentHashMap和HashTable的效率哪个更高?为什么?
4.ConcurrentHashMap在JDK1.8中为什么要使用内置锁Synchronized来替换ReentractLock重入锁? 5.ConcurrentHashMap的get()方法需要加锁吗?
6.ConcurrentHashMap中的key和value可以为null吗?为什么?
7.ConcurrentHashMap的并发度是什么?
8.你认为自己有什么缺点?(HR提问)

 

 

3. 另外对于设计模式也是比较关心的,所以最好是提前准备手写多个熟悉的设计模式,比如:单例、工厂等常见设计模式代码

设计模式这一块建议可以刷刷这份<23种设计模式知识要点:定义+代码+使用场景>

1.单例模式(Singleton Pattern)
2.工厂模式
3.抽象工厂模式(Abstract Factory Pattern)
4.模板方法模式(Template Method Pattern)
5.建造者模式(Builder Pattern)
6.代理模式(Proxy Pattern)
7.原型模式(Prototype Pattern)
8.中介者模式 9.命令模式
10.责任链模式
11.装饰模式(Decorator Pattern)
12.策略模式(Strategy Pattern)
13.适配器模式(Adapter Pattern)
14.迭代器模式(Iterator Pattern)
15.组合模式((Composite Pattern))
16.观察者模式(Observer Pattern)
17.门面模式(Facade Pattern)
18.备忘录模式(Memento Pattern)
19.访问者模式(Visitor Pattern)
20.状态模式(复杂)
21.解释器模式(Interpreter Pattern)(少用)
22.享元模式(Flyweight Pattern)
23.桥梁模式(Bridge Pattern)

 

 

4. 还有就是分布式架构的问题:memcache扩容、雪崩的场景、以及hadoop的基本架构

可以看看这些分布式(限流+通讯+缓存)面试:ZK、Redis、Nginx、MongoDB、kafka、MQ等等

 

以及这些分布式(限流+通讯+缓存)笔记:ZK、Redis、Nginx、MongoDB、kafka、MQ等等

 

网易提前批Offer真烫手,分布式架构/Spring框架/高并发/设计模式/微服务等全都有,幸好之前都有收集整理各部分对应的面试和笔记PDF,面试之前刷刷补补还是挺不错的,毕竟“面试造火箭,工作拧螺丝”。尤其是这个25大面试专题的PDF,若是能刷透这份面试,也不用再刷别的了...

 

专题一:JavaOOP面试题
专题二:Java集合/泛型面试题
专题三:Java中的IO与NIO面试题
专题四:Java反射面试题
专题五:Java序列化面试题
专题六:Java注解面试题
专题七:多线程&并发面试题
专题八:JVM面试题
专题九:Mysql面试题
专题十:Redis面试题
专题十一:Memcached面试题
专题十二:MongoDB面试题
专题十三:Spring面试题
专题十四:Spring Boot面试题
专题十五:Spring Cloud面试题
专题十六:RabbitMQ面试题
专题十七:Dubbo 面试题
专题十八:MyBatis 面试题
专题十九:ZooKeeper 面试题
专题二十:数据结构面试题
专题二十一:算法面试题
专题二十二:Elasticsearch 面试题
专题二十三:Kafka 面试题
专题二十四:微服务面试题
专题二十五:Linux面试题