哈喽!大家好!又到了一年一次的跳槽季!不知道你是否找到了自己心仪的新工作呢?我和你一样,也在苦苦的寻找着新的工作! 本人目前在大连,19年毕业到现在,工作经验是两年。刚毕业呢,就和同学一起打包去了 某信,干了一年外包。后来实在是受不了变态的加班制度,跳槽到了高新园区的另一家公司。新的公司算是有自己的产品。不过平时的工作内容,也几乎是crud。这不,又到了一年一次的跳槽季!本来想着好好准备了很长时间,面试挺有信心的。谁想到,刚面了几家,直接给我面自闭了。下面给大家详细讲讲,面试的内容吧。希望大家不要和我一样踩坑。 首先,由于我投的大部分都是杭州的 java开发岗位 所以,第一轮面试,基本都是电话面试了。面试的前两家公司呢,都是给银行做外包的公司。免得问题的大致分为以下几个吧: 1、 spring的 IOC 和 AOP 大家要注意这个问题,是面试中的高频问题,一定要掌握透彻。我大概讲一下回答的思路吧,具体的回答,大家可以自行百度,也可以私信我,我可以把我整理的一些笔记发给大家。首先,IOC 控制反转,即,把对象的控制权,交给spring,程序只是被动的去接受它所依赖的对象。另一个层面 又叫 DI 也就是 spring的依赖注入!依赖注入又分为五种方式:
- set注入
- 构造器注入
- 注解注入
- 静态工厂注入
- 工厂方法注入
回答完以上的几点,基本面试官就会算你通过了。再问的深一点的话,面试官会问你,spring的循环依赖如何解决?感兴趣的可以去搜一下 @Lazy注解。和spring框架本身已经解决的一个循环依赖问题。
2、AOP 面向切面编程。把程序中公用的部分提取出来,以达到更好的复用效果。他的实现方式,当然也是必问的。jdk动态代理 和 cglib动态代理 ,一级他俩的区别。 按这种思路回答,spring框架的问题,面试官基本不会难住你了。 当然了,篇幅限制,还有其他一些细节的问题这里不展开描述。 3、数据库索引,必问!,这里主要是mysql,当然了,大部分的公司,不会问你,b+树怎么去写。他会问你什么时候会出现索引失效的问题?下面,是我总结的几个场景:
- 尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描
- 尽量避免使用or,会导致数据库引擎放弃索引进行全表扫描
- 尽量避免在字段开头模糊查询,会导致数据库引擎放弃索引进行全表扫描
- 尽量避免进行null值的判断,会导致数据库引擎放弃索引进行全表扫描
- 尽量避免在where条件中等号的左侧进行表达式、函数操作,会导致数据库引擎放弃索引进行全表扫描
- 当数据量大时,避免使用where 1=1的条件。通常为了方便拼装查询条件,我们会默认使用该条件,数据库引擎会放弃索引进行全表扫描。
大概是以上这几种情况!那么此时面试官会追问你,如何进行sql优化?这个时候,你就可以围绕以上几种情况,给出解决方法即可。 4、当然了,还有数据库的 最左匹配原则 以及 为什么会发生 索引失效的问题 回答完这些呢,面试官可以基本的认为,你的基础是不错的。
当然了,想让面试官录用你,这还差的远呢。 5、java多线程 必问!这个可以说是问的最多的,每一家公司都会问!一定要掌握! 6、redis 必问!问这个的比问多线程的还多! 以上是几个大点吧。在实际面试过程中,中间还穿插了很多java的基础知识,集合框架之类的。 下面说一说 ,我的面试情况吧。我在一周之内,连着面试了七家公司,其中,有两个是外包公司,剩余五家是互联网公司。不出大家所料。我只通过了外包公司的面试。互联网的全都挂了。当然了,外包给的薪资还是相当不错的,是我现在的两倍,14k!不知道大家对外包是怎么看的呢?值得去么? 以上是我总结的面试中的比较高频的问题吧,对大家有帮助的话,点赞加关注哦,程序员永不为奴!
|