集体背景
自己毕业于二流一本大学非计算机相关业余,大三下学期开始学 java。目前刚好工作两年,业余后端,base 深圳。
面试流程
- 一面二面电话面
- 三面四面视频面
- 主管电话面
- hr 电话面
整个流程下来就两个礼拜,比阿里高效多了。面试的是网易杭州研究院的职位,原本三面通过后 HR 分割我说是要去杭州总部让主管进行个现场面试,而我在深圳,就通知 hr 我这边不不便看能不能安顿视频面试,而后就又加了一轮技术视频面。顺带说一句,网易的 hr 真是超级 nice 啊,加了微信私下聊得很嗨皮~
作为浏览福利,我也把我的复习资料(Java 学习笔记 + 面试真题)都整顿好了,须要的可【点击此处】支付。
重点:面试题
面试题内容包含 Java 根底、开源框架、数据库、redis、网络、Nginx、Linux、情景模仿 & 其余
java 根底
1. 定义 Integer x=20 Integer y=200 在内存里是个什么过程?
2.volite 关键字的原理?它能保障原子性吗?AtomicInteger 底层怎么实现的?
3.threadLocal 关键字有用过吗?如果没有重写 initialValue 办法就间接 get 会怎么?
4.hashMap 与 concurrentHashMap 原理和区别?
hashMap 什么状况下会呈现循环链表?concurrentHashMap 写的时候用什么锁?RenteenLock 底层是怎么保障线程平安的?
5. 反射能获取到父类的公有办法吗?怎么避免反射毁坏单例模式?
6. 形容下 JVM 内存模型。每个区的作用是什么?堆内存的工作原理,为什么须要两个幸存区?只有一个行不行?老生代是用什么垃圾回收算法?
7. 形容下多线程原理。怎么开启一个线程?start 和 run 办法有什么区别?
怎么创立一个线程池,传入的参数别离什么含意?线程池是怎么实现维持外围线程数的?怎么实现一个自定义的回绝策略?
8.Socket 编程 nio(这一块我不太熟就说没理解过,面试官就没细问了)
开源框架
1. 你用过哪些开源框架?最相熟的是哪个?(这里我说了 spring,所以后边的问题都是围绕 spring 的)
2. 形容下 spring 的 ioc 和 aop。
你罕用哪一种注入形式?BeanFactory 和 ApplicationContext 有什么区别?你们我的项目里用的哪个?说一下 spring bean 的生命周期。
AOP 实现原理是什么?两种动静代理实现原理?JDK 动静代理为什么要实现接口?
3.spring task 是怎么实现的?
4.spring 事务你是怎么用的?加了 @Transcational 注解 spring 都做了哪些工作?怎么晓得事务执行胜利了?
事务隔离级别?mysql 默认级别是什么?事务流传属性?spring 默认是什么?嵌套事务子事务什么时候 commit?
5.spring 和 springMVC 是什么关系?有没有用过 JdbcTemplate?
6.springMVC 中对整个申请的解决流程是怎么的?返回 json 的话是用哪个 view?
数据库
1.mysql 索引是怎么实现的?b+ 树有哪些特点?实在的数据存在哪里?
2. 哪些状况下建索引?解释下最左匹配准则?
3. 当初一个表有三列 a b c,组合索引 (a,b,c) 查问的时候 where a like ? and b=? and c=? 能用到这个组合索引吗?为什么?
4.explain 执行打算看过没有?其中 type 字段都有哪些值?别离代表什么?
5. 你有哪些 sql 调优教训?
Redis
1.redis 有哪几种数据结构?给你一个 key 怎么晓得是用的哪种构造?
2. 怎么查看所有的 key?redis 怎么切换库?怎么清数据?
3. 形容下 redis 淘汰策略?如果没有数据能够淘汰活着没有配置淘汰策略读申请能够失常执行吗?
4. 你们我的项目里 redis 是单节点的吗?如果多节点怎么同步?
5. 我的项目里用 redis 存哪些数据?为什么用 redis?和 jetty 本地缓存有什么区别?
网络
1.HTTP 1.1 版本减少了哪些内容?有哪几种申请形式?
2. 形容下 HTTP 三次握手和四次挥手过程?为什么须要四次挥手?为什么 TIME_WAIT 状态须要通过两个最大报文段生存工夫能力到 close 状态?
3. 浏览器发动一个申请到收到响应两头经验了哪些过程?晓得多少就说多少,越具体越好。
Nginx
1.nginx 有哪些模块?你比拟相熟哪个?
2.proxy_cache 你是怎么配置的?缓存是存在哪里?具体是怎么命中缓存的?
简历里有写 nginx,后果问得几个问题我都没答好,面试官就没再多问了,囧~
Linux
1. 怎么查看某个过程中的线程?
2. 怎么批量替换一个文件夹下所有文件中的一个字符?(sed 命令)
3. 有没有用过 jps jmap jstack jstat 命令,别离说下有哪些罕用参数,晓得多少就说多少。
我这里联合本人用 jmap jstack 定位到线上问题的教训说的,答完后感觉面试官挺称心的,所以说实际很重要啊~
情景模仿 & 其余
1. 设计一个零碎,每天有 100 亿条数据,须要在后盾做实时展现和查找。
我过后答复的大体思路是 nginx 负载平衡,音讯队列存储,多线程读取,批量插入,数据库分库分表。
面试官依据我的答复又衍生出了很多问题,如音讯队列存满了怎么办?(也就是生产跟不上生产)批量插入时某一条失败了有什么影响?怎么解决?分库分表应该怎么分?怎么解决数据迁徙的问题?
2. 用代码实现 cat 1.log |grep a |sort |uniq -c |sort -rn 的性能。
3. 如果当初有一台服务器忽然变得很慢,怎么去定位问题?
感悟
1. 不要不可一世。
- 很多人感觉本人学校不好业余不对口,进不了大公司,连去面试的勇气都没有,其实越是大公司越是看重集体能力而不是历史战绩。
2. 面试前肯定要筹备短缺,不然就是节约单方工夫。
- 很多人不屑于长期抱佛脚,你如果感觉这是长期抱佛脚那就是抬杠了。我这里说的筹备次要有两点:第一,简历上的内容肯定都是本人很熟的货色,面试官会依据他感兴趣的中央衍生出很多问题,可能问到的点都提前想一下。第二,肯定要有一两个本人很相熟的畛域,能够具体到某个技术点或者某个框架,然而肯定要钻研透彻。
3. 要长于思考、总结、反思,这些能力是能够训练的。
写在最初
这里只列出了网易面试中问到的问题(其余公司其实问得也都差不多)须要上述面试题及答案文档可【点击此处】即可取得,以下材料也可点击链接支付!
Java 外围知识点
1000 道互联网工程师面试题
大厂面试真题
视频学习材料