大家好,我是田哥
最近这两年,因为受疫情影响,工作确实不好找。为了答谢你的关注,田哥整理最近7位朋友的面经,希望给正在准备面试或正在面试的你提供点小帮助。
第一位朋友在杭州面试一家小厂,面经如下:
1. 项目介绍
2. springboot 和springMVC
3. Spring和SpringBoot区别
4. AOP 动态代理
5. Spring事务传播机制
6. 触发事务回滚方式
7. MyBatis plus了解吗
8. MyBatis 接口没有实现的原理
9. 分布式事务锁了解吗
10. volatile关键字
11. synchronized 锁优化 分段 升级
12. CAS原理
13. HTTP/TCP区别 联系
14. HTTP和HTTPS区别
15. UDP和TCP区别
16. Java NIO
17. 有了NIO为什么还需要Netty
18. MySQL内外连接
19. binlog作用
20. ES底层
21. kafaka队列
上面的这些面试题,大部分都是八股文,所以背背八股文还是能应对。
第二位朋友是浩鲸科技(长沙)面经如下:
1、自我介绍(家庭情况)
2、项目
3、最近学到的知识(线程池)
4、线程池的具体应用场景
5、注册bean的注解
6、Configuration注解的作用
7、反射
8、AOP使用过吗(知道,但没用过。。。)
9、Stream流使用过吗,找出list中姓刘的学生。
10、情景题(说了一大堆,没太听明白。。。。)
这位朋友的面试题八股文就比较少了,基本上都是靠临场发挥。
第三位朋友是浩鲸前端一面+二面(base南京已oc)面经如下:
一面(35min)
1.自我介绍
2.阐述自己的项目+项目中遇到了哪些难点
3.关闭页面localSorage还存在吗?怎么进行免登录操作
4.localStorage、sessionStorage、cookie的区别
5.项目中vue的路由用的哪一个?hash模式和history模式的区别
6.history路由有时候为什么会报404
7.路由的底层原理(没答出来)
8.路由懒加载用过吗,怎么实现的?
9.spa页面的好处是什么?它有什么缺点?
10.computed和watch的区别
11.vue组件之间通信的方式有哪些?
12.nextTick的底层原理
13.vue的生命周期,每个生命周期干了哪些事
14.全局事件总线的原理,通过什么来实现的
15.js的数据类型有哪些?基本数据类型和引用数据类型有什么区别?
16.null和undefined的区别
17.let const var的区别
18.es5的作用域和es6作用域的区别
19.对原型,原型链的理解
20.出了一道简单题,如何进行数组去重(一开始写了set,后来问我有没有其他方法)
二面(20min) Hrbp面
1.自我介绍
2.大学里最困难的事情是什么
3.为什么放弃算法 学前端
4.会基本的后端语言嘛
5.如何看待今年秋招的形势
6.如何看待加班
7.期望薪资是多少(我没直接说,我问了薪资构成,被告知offer的薪资是由三部分组成的......
8.给你分配的部门是xxx,可能会出差能接受嘛?
后来就告诉我今年形势怎么样怎么样,我们公司的hc也有些减少。
第四位朋友是比亚迪 Java面经:
总的来说还是很简单的,40多分钟,面试官在回答问题时会中途打断问问题,主要考察实际应用经验,很多小的问题记不清了,写一些还记得的。
面试官介绍部门情况
自我介绍
四六级情况、挂过科吗
聊实习
问什么实习中使用Kafka
RabbitMq和Kafka的区别
Linux查看文件大小命令
内存泄露和内存溢出
数据]库中金额如何存储
BIgDecimal底层原理
主键索引和普通索引区别
全文索引
索引失效情况
为什么%开头的模糊查询会导致索引失效
斐波那契数列
哈希算法
项目中的接口人人都可以访问吗?(JWT)
前端了解吗
反问:(1)用的技术栈:SpringCloud、Kafka这些目前比较新的技术;(2)多久反馈:1~2周
这位朋友的面试题偏向于实战,八股文占比不高,但也有。
第五位朋友是恒生电子面经-Java-光速offer,面经如下:
base杭州-财富业务管理 总部-南昌站
1面2面都是20min
- 一面: 全程项目(讲了10来分钟) 反问: 建议
- 二面: 全程项目(讲了10来分钟) 反问: 建议
我也不想全程项目啊, 可是我问: 我能向您介绍一下我这个项目吗? 因为这真的花了挺多时间的.
面试官: 可以, 你讲吧
8月22号投递
9月23号通知笔试, 24号通知面试, 25号一面, 26号二面, 27号offer
评价:太快了
这位朋友的面试那就基本上全靠项目了,八股文没有具体体现出来。
第六位朋友是携程前端一面二面,面经如下:
一面
- 怎么理解html语义化标签
- html5新增了哪些东西
- localStorage 和 seesionStorage 和 cookie区别
- html文件不写head和body等内容,只写两行文本,会发生什么
- css选择器的优先级
- 怎么给ul下面的第五个li设置样式
- css盒子模型
- css的水平垂直居中的方式
- display属性有哪些值
- 隐藏元素的方式,区别
- js的数据类型
- 基本类型和引用类型的区别
- js判断数据类型的方式
- 怎么理解作用域和闭包
- 口述使用闭包实现定时器
- 对this的理解
- 项目的前端是怎么搭建的
- 对webpack的理解,哪些配置
- 前后端用户认证怎么做的
- 图片懒加载怎么做的
- 路由守卫怎么做的
- 项目的表单有没有遇到什么问题
- 表单的自定义的校验怎么做
- 有没有封装react hook
- 项目跨域怎么处理的
- mongdb数据库怎么使用的
二面
- 项目的背景
- 项目的登录是怎么做的
- 项目的跨域是怎么做的
- 项目订单的状态怎么设计
- 怎么保证支付和订单状态的一致性
- 支付后怎么拿到新状态
- 学过哪些计算机课程
- mongdb 和 mysql的区别
- https 怎么保证安全性
- 项目中觉得自己做的比较好的点
- 项目上线后的监控点,考虑哪些
第七位朋友是掌趣Java一面,面经如下:
1.int占几个字节 4个
2.然后我补了一句范围是-2^31 ~ 2^31 - 1
3.为什么 -1 ,我说有0
4.问我-1怎么表示 我说 32位全部设置为1就行
5.问我-2的补码怎么表示?我说这个有点忘了,然后面试官说:这个不是记的啊,推啊!(推个der,不会) 6.为什么要有补码?我说主要是为了做减法的时候,统一转换成加法来操作 (貌似他不满意,我想不出其他理由了) 浮点数底层怎么表示?我说阶码,尾数 浮点数怎么判断是否相等 为什么浮点数要阶码和尾数表示,为什么int不用呢?
7.问我熟悉哪些数据结构?
8.数组和链表)区别 ?我说数组可以通过0(1)访问到对应的数
9.然后就问我底层是怎么访问的?我说先找到数组的基地址, 如果要访问O(2)的话,就拿基地址 + 2 * 每个数占的字节数
10.然后又问我,如果数组里面如果存储的是变长,比如字符串?怎么O(1)得到?(有点懵,我说用对字符串做哈希运算,然后mod数组长度) 面试官说你这个没解决本质问题啊,怎么存储啊?我说扩容哇, 他说不考虑扩容,。。。那我真不知道。
11.什么时候会用到树?我说java里面JsonNode会用到,问我JsonNode是多叉树还是二叉树。我说多叉树 12.问我多叉树怎么转二叉树,二叉树怎么转多叉树?
13.平衡二叉搜索树?怎么保证平衡?我说左旋,右旋,双旋?
14.平衡二叉树,平衡到底有什么好处?
15.常见的排序]有哪些?
16.归并的思想?
17.归并和快排的区别?我说稳定性和额外空间复杂度
18.归并不用递归怎么写?我说用栈;
19.面试官说用栈的写归并,压入栈具体要压入哪些数据?我说左边界和右边界;数组?我说数组当全局变量存储
20.归并的时间复杂度?我说NlogN;然后问我为什么时NlogN,让我分析
21.多线程了解是把? 什么时候会用多线程?我说通过临界区操作共享资源的时候 22.问我同时读需不需要加锁?不需要
23.一读一写呢?需要 为什么需要?一读一写不加锁会出现什么问题?让我举例子说明?(这里给我绕进去了。。)
24.一读一写的时候, 一个账户有5000余额,一个写线程对账户-500的操作,另一个读线程读到的结果除了4500和5000以外还可能有哪些情况?问我有没有可能既不是4500,又不是5000?
25.问我JVM了解是吧?
26.讲一下gc回收?我说标记复制,标记-清除,标记整理
27.他说问我最关键的一个问题?问我底层是怎么做到哪些对象在用,哪些对象没有用?
28.我说按照GCroots,可达性分析?他说不是。他说底层怎么拿到根对象里面的存活的?不知道他在问什么
29.问我main函数调用A函数,A函数调用B函数。底层怎么执行的?我说就是栈帧的弹出和压入
30.问我怎么通过栈里面拿到堆的对象?我说直接访问和句柄池访问
31.问我怎么设计一个GC垃圾收集器?
32。问我堆里面的对象怎么知道被其他对象引用了, 我说记忆集和卡表。他说别说这些复杂的,然我从计算机的思维来思考,说计算机很笨
33.我说底层有数据结构来表示一些关系吧?他说没有这么神奇的东西?我说遍历。他说遍历没用
34.然后,问我你觉得你擅长哪些?
35.我说mysql和redis吧,然后简单问了我几个问题。为什么用缓存
36.然后还有别的吗?我说一些性能优化和问题排查。。软中断导致CPU飙高。
37.反问。说这些应用层的东西千篇一律,最重要的是掌握底层的知识。。。。
掌趣是我秋招以来,自我感觉最难的一次。。。。没有问项目,八股。基本就是数据结构,计算机系统基础,底层原理 。
这位朋友的面试题居然算起来有30多个,并且八股文占比一般,更多是要掌握要理解技术本质,否则很难应对。
总结
上面7位朋友的面经,其中前端的这里就不做评价了。后端面试中,八股文还是占比还是不小的。但是,很多时候是问项目问题,我们在回答的时候,多多少少都会扯到八股文上来的。
最后,建议大家多总结自己的项目,深入挖掘项目中的问题,业务并发了怎么办?分布式锁用到什么业务?为什么用XXX方案实现分布式锁?....