以下记录和总结一下近期面试时遇到的一些问题,供后期查阅,同时,希望对正在求职的小伙伴们有所帮助。
1.自我介绍
介绍突出以下几点:姓名、毕业院校、专业、熟悉的技术栈、做过的项目简介、自己在项目中做的工作、自己面试的岗位及自己的优势介绍。时间把控在35-60秒即可。
2.谈谈项目中自己印象深刻的地方
根据实际情况,自由发挥即可
3.谈谈项目中的核心点和难点
根据实际情况,自由发挥即可
4.谈谈你对RESTful API风格的理解,并根据业务设计一个接口
在前后端分离架构未出现之前,我们要开发WEB端的应用,更多是通过jsp或者模板引擎去实现,这样会有两个弊端:1.前后端代码混在一起,不利于后期维护; 2.前后端分工不明确。前后端分离的架构强调前端和后端各思其职,后端主要负责业务逻辑的处理,前端负责界面展示,前后端通过api去通信,RESTful API规定了api的一些约束和设计风格。我理解的是它主要体现在两个地方,1.每个url表示一种资源,体现在url语义明确,url中尽可能用名词去表示资源,我们对资源的增、删、改、查等操作,用HTTP头表示,比如POST、DELETE、PUT、GET等。2.url的返回格式统一,用xml或者json,我在开发中用的比较多的是json格式做返回结果,json格式中包括状态码、消息、数据体等字段。
5.cookie和session的区别
HTTP协议是无状态的,而我们业务中,有一些场景是需要记录用户状态的,比如登陆、购物车等,session和cookie用于做会话管理,记录状态信息。
区别:session保存在服务器端;cookie保存在客户端,
工作流程:第一次请求时,服务器端会生成session,并将sessionId通过cookie回给客户端,下一次请求时,cookie会携带sessionId给服务器端,服务器端通过比对sessionId确认用户。
6.数据库中的乐观锁和悲观锁
乐观锁:不给数据表加锁,任何事务都能够同时访问数据;实现时,我们通常在表中添加一列version或时间戳,version用的比较多,更新数据前,会获取version值,更新时,会判断当前行的version值是否和之前的version值相等,相等则更新,并且version值+1,不想等则不更新。优势:避免了加锁造成的吞吐量下降的问题,缺点:需要手动实现,仅作用于特定的业务场景。适用于读多写少的场景。
悲观锁:给数据表加锁,确保事务多数据的更新是有序的,像读锁、写锁、表锁、行锁等都是悲观锁。优势:保证了数据的安全性;缺点:并发大的情况下,其它事务获取不到锁,会影响我们系统的吞吐量。适用于写多读少的场景。
7.索引类型
8.MySQL中用到的数据结构及它们之间的区别
9.MyBatis中#和$的区别
10.MyBatis中的延时加载机制
11.SpringMVC的工作原理,描述代码中如何获取handler
12.介绍一下项目的部署架构(前台请求到访问数据库的中间流程)和技术栈
13.缓存击穿、缓存穿透、缓存雪崩
缓存击穿:
定义:大量并发请求在缓存服务器中未命中,转去数据库了,给数据库带来了访问压力
原因:缓存服务器,key过期了
解决方案:
1.根据业务场景,尝试设置热点数据永不过期。
2.双重检查锁(附伪代码)
if (null == getFromRedis()) {
lock;
if (null == getFromRedis()) {
getFromMysql();
updateToRedis();
}
unlock();
}
return getFromRedis();
优点:执行了一次MySQL查询,其余请求正常走Redis,缓解了MySQL的压力;锁粒 度小;
14.MySQL能实现分布式锁吗
15.MySQL最左匹配原则,最左匹配原则可能导致哪些情况下索引不会被命中?最左匹配原则的原因?
15.谈谈对AOP的理解
纵向编程比如继承类,实现接口等方式,解决不了的一些问题,可以通过横向编辑去解决
16.Redis是单线程的吗
17.JVM调优
18.JVM内存模型和垃圾回收机制
19.有没有遇到过线程池被撑爆的问题
20.Spring事务机制
总结:
1.要把面试官问的问题向你擅长的方向引导,把写在简历上的知识点学透彻
2.面对问题时,仔细分析问题,然后顺着分析的思路摸索记忆,找到答案(ps:有时候一些东西本来知道,一时记不起来了,加上紧张的情绪,可能就回答不好问题)
3.回答问题时,尽量把自己都知道的点有条不紊地讲出来(毕竟有内容总比没有内容强)
这篇博客总结了Java后端开发面试中常见的问题,包括自我介绍、RESTful API理解、cookie与session的区别、乐观锁与悲观锁、MyBatis与SpringMVC的工作原理、缓存问题以及JVM和数据库相关知识。建议面试者深入理解并熟练掌握这些知识点。
546

被折叠的 条评论
为什么被折叠?



