最近开始找工作了,坐标杭州。渣渣感觉面试应该挺困难的,也不知道具体会问哪些类型,会在面试完把每一次面试问到的题目列出来, 一个作用是参考记录,另一个作用是可以把自己不会或者弱项的问题及时补齐。
暂时是先把问题列出来,有时间的时候会把答案补上。
希望能找到一个好工作,加油
尼尧的面试日记:面试记录(四)
- 本次面试过程
- 笔试题
- 一、String、StringBuilder、StringBuffer它们之间的区别,他们有哪些常用操作方法?
- 二、Spring有哪些特性,以及他们的原理是什么?SpringMvc工作流程大概描述一下。
- 三、Mybatis框架运行原理大概描述一下。
- 四、Java集合类有哪些,描述下他们的区别。
- 五、线程池的运行原理描述一下。
- 六、MySql的运行原理,MySql中两种引擎有什么区别。
- 七、索引是什么,有什么作用?描述下它的原理。
- 八、查询中的左连接、右连接、内连接
- 九、乐观锁和悲观锁
- 十、事务有几大特性,说出它们代表的意思,并描述一下并发事务隔离级别。
- 十一、GC是什么,GC算法都有什么?
- 十二、说说什么是缓存,应用场景和注意事项
- 十三、MQ是什么,应用场景和注意事项
- 十四、使用ArrayList来实现一个排序。仅能使用一个ArrayList,一个courseList,course记录了分数score、课程name,实现一个对courseList以分数高低排序的方法。
- 十五、统计。若假设course表有课程分数字段score,有1、2分的课程,如何使用一句sql语句进行统计有多少门1分课程和2分课程(面试官建议使用group by)。
- 十六、设计数据库。设计一套权限数据库,用户可以有多个角色,可以对角色进行授权,设计完毕使用一条sql语句,把指定id的用户的权限集查出来。
- 十七、代码质量保证。如何做好单元测试、集成测试?如何保证交付代码的质量,描述一下你的方式方法。
- 面试题
我大概总结一下,小型公司2年以下开发主要业务就是CRUD,招人肯定是希望能立马上手,所以面试范围我押题是常用的框架(SpringBoot、Spring基本概念,Mybatis),事务、数据库相关(锁、事务级别、sql优化,数据库底层概念等)、异常。有些会问一些设计模式(主要掌握工厂模式、单例模式、代理模式。)。
中大型公司的话,加上 JVM,集合,并发编程,一些网络知识。有些可能还会有一两道算法题。甚至开始问分布式了,具体看他们业务。
大厂请直接参考我画的java路线图,大厂知识路线没有3年以下之分,只有深/广度之分:Java知识体系脑图(2020年)
本次面试过程
- 背景
创业型公司,有自研的校园社区类复合型APP。现场面试,先笔试题,然后再面试问了一些,共一轮复合型面试。
能不能建议各互联网公司给一台没有网络的电脑笔试,天天摸电脑不怎么写字手都要断了,而且问题太宽泛空地不够写啊,写得慢没写完还被嫌弃了。
- 过程
本次就一轮笔试+面试,先做题,然后自我介绍,再就问了几个问题。
笔试题
一、String、StringBuilder、StringBuffer它们之间的区别,他们有哪些常用操作方法?
二、Spring有哪些特性,以及他们的原理是什么?SpringMvc工作流程大概描述一下。
三、Mybatis框架运行原理大概描述一下。
四、Java集合类有哪些,描述下他们的区别。
五、线程池的运行原理描述一下。
六、MySql的运行原理,MySql中两种引擎有什么区别。
七、索引是什么,有什么作用?描述下它的原理。
八、查询中的左连接、右连接、内连接
九、乐观锁和悲观锁
十、事务有几大特性,说出它们代表的意思,并描述一下并发事务隔离级别。
十一、GC是什么,GC算法都有什么?
十二、说说什么是缓存,应用场景和注意事项
十三、MQ是什么,应用场景和注意事项
实操类题目
十四、使用ArrayList来实现一个排序。仅能使用一个ArrayList,一个courseList,course记录了分数score、课程name,实现一个对courseList以分数高低排序的方法。
十五、统计。若假设course表有课程分数字段score,有1、2分的课程,如何使用一句sql语句进行统计有多少门1分课程和2分课程(面试官建议使用group by)。
第一次:
SELECT score,count(score) as num FROM `course` where score is not null and score = 1
union SELECT score,count(score) as num FROM `course` where score is not null and score = 2;
第二次:
SELECT score,count(score) as num FROM `course` where score is not null group by score;
十六、设计数据库。设计一套权限数据库,用户可以有多个角色,可以对角色进行授权,设计完毕使用一条sql语句,把指定id的用户的权限集查出来。
十七、代码质量保证。如何做好单元测试、集成测试?如何保证交付代码的质量,描述一下你的方式方法。
面试题
一、先介绍一下你自己。
阿巴阿巴…(工作年限,上一家公司工作情况、主要项目方向、自己强项。)
二、说一下你在项目主要负责的模块,最近一次你自己开发模块的整体流程。
略
三、描述下项目中整个开发流程的参与程度,需求设计参与了吗,怎么参与的,后期开发呢。
四、拿到需求后如何去开发、如何搭建,需要项目经理配合吗,怎么配合?编码过程代码质量由自己全权掌控吗?
五、说说索引吧,还有原理。
六、数据库中乐观锁、悲观锁用操作具体怎么实现的?
七、前端会吗,需要自己开发页面吗,会到什么程度?
八、高并发经验有吗,死锁怎么定位?
九、有什么想要问的?
十、你学习成绩怎么样?
我:中上,不是很顶尖。(内心OS :???????? 毕业很久了还有这样的问题吗,我还以为应届才会。)