顺丰科技java实习面试,被面试官疯狂拷打
面试官提前五分钟进入视频了,给人感觉还不错。一共面了35分钟,全程高能拷打。
一.做我介绍
二.介绍项目,这里给了我当头一棒,各位一定要好好准备你的项目,要经得起面试官拷打😖😖。
从这里开始,直接深挖项目:
1.你项目是怎么实现的?(后台基于springboot,前端基于vue,数据库用的是mysql)
2.你平常写页面写的多吗?你项目的数据库表是怎么设计的?数据库怎么查询?怎么查看数据库引擎?(三连问开始炸裂😫)
3.怎么查看数据库日志,日志类型有哪些,简述一下?怎么优化数据库性能?(只知道redo log 跟undo log😓)
4.数据库索引有了解吗?为什么要用索引?你的项目什么地方用了索引?怎样保证线程安全?(八股文背诵)
5.谈谈数据库索引的底层结构?(八股文式背诵,整整讲了3分钟,面试官就回答了一个字:嗯)
6.你说你项目是基于springboot实现的,那你说说springboot自动装配原理(还好提前背了)
7.springboot的starter有了解过吗?如何理解starter?😥😥(答:在搭建一个项目时,需要导入很多jar包,还要引入一些依赖,我们在使用springboot之后,直接引入一个starter就可以了,相当于一个开关;答得非常烂,感觉达不到面试官的点)
8.你用过springboot?那你肯定了解spring了,那来谈谈spring的核心(答了spring IOC跟AOP,八股文式背诵)
9.spring中都有哪些设计模式?(答:工厂模式:可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象;代理模式:aop;单例模式:新生成的bean对象都是单例的)
追问:spring中所有对象都是单例的吗?🤐(因为开局就被问蒙了,所有这里居然回答不太了解,尴尬)
10.你使用spring的时候有没有想过它是怎么运行的?(😭😭直接懵逼,跟面试官说只会用,这些不太了解)
三.总算熬过项目灵魂拷问了,接下来才开始问基础,要不是我投的是实习,还以为是社招呢,一直挖项目😭😭。
1.刚才你说到你是用锁来保证线程安全,那咱们来聊一聊java并发。你知道java中怎么加锁吗?(答synconized关键字,讲了一下原理,其实还想讲一下乐观锁跟悲观锁,但是直接被问下一个问题了)
2.你上面讲到线程安全,那你如何理解线程安全?(答:线程安全是在多线程并发条件下才有的,只要是你多线程情况下读取到的结果跟单线程结果是一致的,就是线程安全的)
3.谈到线程,那你知道jvm中运行时区域有哪些吗?(分别答了线程私有跟线程共享两个区域的堆栈方法区)
4.你熟悉jvm是吧?来描述一下jvm的垃圾回收机制(这里讲了5分钟被面试官打断了,从分带到对象生成进入老年带以及使用的垃圾算法,分带收集理论,他不阻止我,能给他背到下班)
5.既然看你这么了解(八股背的好),那我问你什么jvm进行垃圾回收的时候会不会影响到我们的业务(这里我答的是CMS垃圾收***并发与业务进行,其他一下收集器大多都需要暂停,感觉答得不是很好)
6.你知道java中都有哪些工具类吗?(答:比较熟悉的就是集合)
追问:那你说说java集合有哪些?他们有什么用?(答的是collection主要用于储存单一对象,map用于储存键值对,list,set,queue,hashmap等)
7.那你说说你最熟悉的集合类型(随便说了一个LinkedList,讲了一下底层数据结构,访问原理,储存空间,跟ArrayList进行对比,都是老八股)
8.那你知道LinkedList创建的时候,初始的容量是多少吗?(我说我只了解ArrayList初始是0,add之后是10,超过10会扩容成1.5倍,LinkedList不太了解)
9.最后问的是由了解过哪些算法,比如贪心,快速排序之类的?(答了解过快排,讲了一下实现原理,代码怎么写,还以为会让我手撕,结果听完过程就说可以了,(是不是赶着下班?))
最后反问:实习生进公司会接触到哪些业务?
答:不同部门业务不同,首先进去一般都是让你先干干后台管理系统之类的,再看你之后的表现。
感悟:面试官态度可以,就是一开始就深挖10分钟项目,估计是想给我一个下马威,后面聊基础表现的还可以,所以面试心态很重要😭😭😭!