网易面经(Java岗)
网易两面面经整理
岗位:我投递的是杭研所的Java开发岗位。
行程:半天的时间南京=杭州之间穿行,单程2个小时,从杭州东站=网易大厦,单程1个小时(如果能买到城站高铁动车票可以从城站触发。)
吃饭:可以去网易食堂,免费吃,只要人进去,到吃饭时间点就可以蹭饭。
面试:3面,很遗憾我没有HR面,本来想的是去一面游的,划水过了一面,也算是知足了。
下面主要从Java核心技术、多线程并发编程、数据库、个人项目和课题、框架技术等方面标记出我还记得的问题。
一面:65分钟左右
1)自我介绍(个人信息:一分钟说完了);
2)抽象类和接口的区别(Java核心技术:全部讲了一通后,抛出第三个问题)
3)抽象类内方法如果全部是抽象的,是不是就是接口?为什么有的类继承一个类后,还要实现多个接口?(Java核心技术:我说了个接口隔离原则,实在不知道他想要啥答案)
4)多线程中,线程池用过哪些线程池?(多线程并发:没用过,讲了一些自己了解的);
5)线程池中所有的参数讲解一下(多线程并发:corePoolSize,maximumPoolSize,Factory之类的扯了一通)
6)线程池中从corePoolSize到maximumPoolSize转变过程,然后一直问我反向转变的操作(多线程并发:就是并发量突然降低了,这个过程怎么实现的,参数如何变化)
7)HTTP发送请求和接收响应的整个流程;(web技术:扯了一下客户端和服务端之间的流程)
8)403和500状态分别讲解一下,他们之间有什么区别;(web技术)
9)淘宝里如果按照1-5星的店面,从五家店里一共推送出10个同一类产品,都是随机推送,但是最后大量的随机测试后,要保证五颗星的店家推送的商品数量大概是一颗星店家推送的商品数量的五倍,且不能破坏其他概率输出(思维能力:这个问题跟他讨论了有10几分钟,最后他问我有没有优化。。。我哪知道怎么优化)
10)一个已知存储了数据的HashMap中如何让所有的键修改成"网易+原来的键",意思是在所有的key中添加"网易"这个前缀。(Java核心技术:我说迭代处理,但是会有fail-fast问题,然后我就瞎扯了同步操作一下)
11)spring的AOP原理和底层实现(框架技术:扯了一下概念和反射机制)
12)Spring的注解讲一下;(框架技术)
13)静态代理和动态代理区别讲一下;(Java核心技术)
14)静态代理和适配器设计模式的区别;(Java核心技术)
15)tcp和udp的区别;(计算机网络知识:就从可靠性,通讯方式,数据大小,应用方面说了说)
16)cglib底层实现;(框架技术:懵逼)
17)数据库的乐观锁原理和实现;(数据库:懵逼)
差不多这么多吧,还有的记不得了,主要是实际问题考虑和讨论的时间长一点。
二面:差不多也是1个小时
1)数据库索引的设计原理以及意义(数据库:讲了一下概念和聚集索引,非聚集索引)
2)接着上面的问题,问了给定一个数据库,如何设计索引,有什么要注意的?(数据库:我说我没用过,没设计过基本上,就讲了一下语法,还有那些索引的使用场景)
3)给定淘宝秒杀场景,请设计系统实现秒杀(思维能力:又是淘宝,我就说了一下多线程,生产者消费者也扯上去了,他说是多节点实现,其实我没听明白他想让我说啥。。。)
4)微博粉丝和关注者,以及用户信息,请实现数据库表,来关联起这些表(数据库:我画图,然后讲了一下,问我有没有优化,我说想不出来)
5)针对我设计的表,进行查询操作,问我所有的表查询完后,多少次操作。(数据库)
6)之前实习的做了什么项目?讲解一下。(项目经验)
7)就着项目,提出海量数据的时候,集合存不下怎么办(Java核心技术:我实在想不到方法,就说了一下把文件进行分割然后再存集合里。)
8)Spring中的事务原理讲一下;(框架技术:只说了个声明性事务,其他的也不了解)
9)数据库里的事务原理讲一下;(数据库:我就扯了一下隔离级别以及脏读,不可重复读以及幻读中事务的问题)
10)手写jdbc连接数据库的代码(Java核心技术:真心记不得了,只记得流程和类,直接写了一堆注释上去)
10)数据库的事务特性有哪些?(数据库)
11)课题讲一下做的什么;(个人课题)
12)通信是偏软件还是硬件?为什么学Java(听到这个我就有点崩溃了,依据我的直觉,gg了)(职业发展规划)
13)最后问我有什么要问的?(提问环节:我真想问问他是不是搞数据库的,大部分都是数据库,虐死。。最后就问了两个小问题,让我回到前台那边等通知)
果不其然,二面终结,毕竟我是渣硕渣技术,被虐成狗,没有什么项目经验,被两个面试官实际问题问的不知所措。不过也算知足了,本来实习完后,去面这些公司,啥东西也没准备,就是准备一面游一下杭州,知足了,对我来说,网易问的东西广而深,算是让我长见识了,好好学习,天天向下。0.0