网易雷火春招提前批|Java|一面二面HR面
一面 15min(2.15)
自我介绍
项目细节
介绍了一下项目的背景、基本功能、使用人数,前后端开发协作
项目难点,如何解决
这一点没答好,当时第一次面试,有点紧张随便扯了个前后端对接交流…现在想想也挺离谱
数据库表字段
大概问了一下核心表有哪些字段,作用啥的,以及索引的简历情况
数据库优化问题,在生产环境中有没有遇到一些性能瓶颈,是如何解决的?
当时也是比较菜,没想好怎么答,就简单说了做索引balabala,面试官也没有深问。大概是explain分析慢查询SQL,看实际用的索引和type类型,以及像集群部署、分库分表,对一些热点数据做cache,这里又要涉及到数据一致性等等
认证、鉴权如何实现
基于Spring Security的Filter链和RBAC权限模型
jwt的组成,具体怎么用
header+payload+signature,基于颁发jwt和jwt验证
项目的缺点,以后想做哪些优化
偏CRUD项目,技术栈一般,多个服务间耦合度较高,考虑做微服务部署
职业规划
这个问题三次面试问了三遍,第一次被问到真挺迷的,还是大二的萌新呢)大概就说了想往中间件/基础架构方向发展
总结:第一次面试,表现较差,纯纯问项目几乎无八股无算法,本来以为寄了结果居然过了,面试体验一般,面试官没开摄像头。
二面 40min (2.24)
自我介绍
职业规划
未来想考研还是就业?
在学校成绩怎么样
看你简历上写了gc,那我们来聊聊gc吧
垃圾回收算法
标记—复制、标记—清除、标记—整理,以及它们的优缺点和针对性
如何判断对象需要回收
解释了一下引用计数法和可达性分析(常见延伸问题:哪些可以作为GC Roots?),面试官问还有没有别的,我看的《深入理解Java虚拟机》这本书就说了这两种,遂说只了解这么多
进程和线程的区别
一个进程可以在执行的过程中产生多个线程,线程是调度和分配的最小单元,各进程之间数据是独立的。线程执行开销较小。
多线程和多进程哪个快?原因
当时还没学操作系统,猜的多线程,瞎猜的说是线程上下文切换的开销小于进程通信的开销
Java的基本数据类型,String是不是?
老基础题了,byte,short,char,int,long,boolean,float,double。不是
介绍一下反射,应用场景
因为简历里提了反射所以问了,早知道不写了,回答的一般。。。
List和Set的区别
list有序、允许重复,set无序、不允许重复(常见延伸问题:HashSet去重原理、重写equals方法而不重写hashCode方***导致什么问题)
List和Set哪个线程安全?
当时问的时候有点懵,这两个基础类的话不都是不安全吗..我就说了如果说想用线程安全的list和set的话第一是可以使用也是推荐使用CopyOnWrite开头包下的比如CopyOnWriteArrayList,第二是对于map而言可以使用Concurrent开头包下的比如ConcurrentHashMap,第三是使用Collections工具类的synchronize方法来变成线程安全的,以及List的话有个Vector是线程安全的,但是所有方法都是synchronized修饰,效率较低。(常见延伸问题:CopyOnWriteArrayList如何保证线程安全?ConcurrentHashMap一系列八股文)但面试官问的很浅,这时候已经背了一遍HashMap和ConcurrentHashMap的底层八股了)sad
StringBuilder和StringBuffer的区别,多线程条件下应该用哪个
StringBuilder线程不安全,效率相对较高,但是每次需要复制一个字符数组再构造新字符串。
StringBuffer线程安全,效率相对低于StringBuilder,但有缓冲区机制构造字符串,多线程条件下推荐使用StringBuffer。
MySQL左连接和右连接的区别
好久没自己写过join了,MyBatisPlus用多了直接注入Service来作连表了..习惯不好。回答的一般
MySQL事务的概念,介绍ACID
ACID老八股,顺便说了一下ACID的实现(redo、undo、MVCC这一类)
MySQL中float和double的区别
当时有点被问麻了,这个不太清楚就没说,现在想想应该就是存储精度的问题。跟面试官说平时一直用Decimal的..
介绍MySQL死锁,有没有在生产环境下遇到过死锁
互斥、非抢占、占有并等待、循环等待。生产环境还没遇到过。
easy算法题 字符串里提取数字,自己给测试样例,边界条件如何解决 5min
字符串过长怎么解决?(BigInteger?面试官说不是所有的条件都能人为控制,还是要考虑对用户限制输入
数理逻辑题 10min(没做出来)
其实难度不大,事后看很简单,当时就有点紧张一直踩坑,面试官引导了一下最后结果还是差一点
反问:表现如何
面试官说基础知识还不错,但是深度还不够(其实我想说的是好像没有问太多比较深的问题啊,集合底层、索引、JVM啥的都没细问),建议我对一些生产环境下可能出现的问题多去实践。
总结:虽然面试官也没开摄像头,但是体验感比较好,面试官引导的挺好,难度较低比较基础,不过也反映了我部分基础还是不太扎实。算得上是第一场正经的面试,八股+少量项目+算法。四天后收到了hr面,说是前面的面试都已通过。
HR面 10min (2.28)
基本信息,学校,毕业年级
在校学习成绩如何
多久能来实习?能实习多久?
暑期实习
哪里人,学校在哪里
当初为什么投网易雷火
对网易比较感兴趣,在微信公众号上看到招聘信息就投了
城市选择?杭州合不合适,家长同意吗
平时玩游戏吗,有哪些
现在投的还有其他公司吗
说了几家别的(难道我HR面挂的原因是因为这个吗
如果其他家也给你发了offer你怎么选择
我说会权衡考虑(难道我HR面挂的原因是因为这个吗
之后还会投其他公司吗?
当时上课上到一半出来面试,有点慌。。表现得很不坚定说可能会(难道我HR面挂的原因是因为这个吗
职业规划,未来会选择考研还是就业?
平时玩游戏吗,有哪些
反问部门业务:技术面应该已告知了(没想好怎么问)
总结:收到HR姐姐电话的时候正在上课,赶紧出去找了个地方接电话,结果就直接面试,开头说了我前面面试都已经通过,本想着稳了,不过第一次HR面回答的不太好,HR姐姐就一直好的好的好的。告知我3~4天会出结果。最后等了两周都没出,第三周时候状态变成面试不通过,挺离谱的..(可能是每次面试时间比较晚没hc了或者是被排序刷了或者是HR面表现不好。复盘了一下就是HR面一定要坚定坚定坚定:)
#面试复盘##面经#