【顺丰】-Java岗-后端开发一、二面面经
一. 技术一面
自我介绍一分钟
项目中遇到的困难,怎么解决的?
服务端分页怎么做的?
如何查看sql执行计划?
项目中数据库用的什么?
mysql中有哪些索引?聚集索引与非聚集索引解释下?
为什么索引能加快查询速度?
写两个sql查询吧:第一个:将学生按数学成绩由高到低排序;
如果from子句两个表用“,”隔开,解释一下该子句的意思?
确定降序是DEC吗?单词忘记拼了,其实是DESC
第二个:按语数外三门课的总成绩排序。
Java学的怎么样,问几个Java基础知识吧。
线程间的同步怎么实现?
synchronized关键字修饰一个类的static方法与普通成员方法,两个线程同时分别调用这两个方***阻塞吗?
为什么不会阻塞?
线程池使用过吗?
怎么创建线程池?
ThreadPoolExecutor的构造函数参数有哪些?
拒绝策略介绍下?
默认的拒绝策略是哪一个?
中间件用过哪些,比如说Redis、Dubbo、zookeeper。。。微服务了解吗?
…还有些问题忘记了。
反问环节。
二、技术二面
自我介绍。
项目中怎么做的服务端分页?
用的mysql还是oracle数据库?
有一条sql语句执行很慢,如何排查问题?
如何查看sql执行计划?explain命令的执行结果介绍下?
索引为什么能加快查询速度?
问几个Java基础知识吧,Java虚拟机你了解吗,介绍一下,能说多少说多少?
假设有一个String str = new String(“hello world”);这条语句创建了几个对象,分别在JVM的哪个区域?
假设项目中需要用到线程同步,你会考虑怎么实现?
Java中的锁了解吗,介绍一下?
什么是乐观锁、悲观锁,在Java中分别有哪些实现类?
线程池用过吗?
如何创建线程池?
Executors类可以创建哪些线程池?
线程池初始化参数详细介绍?
什么时候会开启核心线程以外的线程?
什么时候会用到拒绝策略?
Spring原码看过吗?
最后问个场景题,现在要查询数据库,数据两位2千万行,使用多线程实现,你有什么思路吗?不能重复读取,数据全部读取完之后才进行数据操作。
假设有一个线程查询失败如何处理?
无反问环节。
感觉一二面问的差不多,时间都是二十多分钟,我怀疑两个面试官串通好了。。。下午收到终面通知。