7月24日晚8:06,杭州打来的电话,当时在上自习,匆忙跑上十一楼,面试了40来分钟结束,8月2号查看官网状态:已回绝。
面试的主要内容:
- 自我介绍
- 你从你的项目中学到了什么?
- 两个aop的方法之间能否直接调用?(不能)
这题不会,后来面试官一步步引导我,还是没答出来,最后面试官直接告诉我:是要先在一个方法中获取到代理对象,再通过代理对象调用aop的方法,绕一下。哦~ - 你的项目是用Spring做的,说一下Spring的加载原理
- 你的项目使用了Struts2,说一下Struts2的执行流程
- 你的另一个项目用到了SpringMVC,说一下SpringMVC的执行流程
- MyBatis与传统的JDBS查询数据库比较一下,MyBatis有哪些优点
我从参数的设置,结果集的封装,与Spring整合时Spring自动生成接口的代理对象这三个方面回答的。 - Socket了解过吗?
我:是指自己的还是用的第三方的?
面:都行。
我:没有(感觉调戏了面试官,Socket其实是了解过的,怕问的太深也干脆说不了解)。 - 说一下 JDK 中你觉得让你眼前一亮的技术
我说了ConcurrentHashMap使用锁分段技术在既保证了数据的一致性的同时,又提高了效率。 - HashMap的底层原理(数组,就是一个Entry数组)
- ConncurrentHashMap的原理(二维数组)
- 线程池技术了解吗?
不了解(其实之前研究过一点,只是当时面试的时候快忘干净了,所以干脆说不了解)。
面:啊???也就是说多线程,线程池,CountDownLatch... 你都没有了解过???
我:(语气不对啊,是不是要凉了?赶紧说了一下他提到的CountDownLatch,缓和一波)CountDownLatch是闭锁,它可以阻塞多条线程(是一条,当时一紧张答错了,面试官也没说啥),其他的多线程的知识也了解一些。
面:哦。 - 了解过有关RPC的相关知识吗?
知道阿里有个著名的RPC框架Dubbo - 数据库事务了解过吗?
了解过,有读未提交,读已提交,未提交可读,可串行化这四种。
面:你再说一遍,我没听清楚。
我:读未提交,读已提交,额...可串行化,还有一种忘了。
面:是可重复读。 - 你有什么要问的吗?
您是怎么阅读JDK源码,Spring源码的,是一行一行仔细看,还是一个方法一个方法看?
面:其实没有必要一行一行看的(我也不知道是真的还是假的),有针对性的看,像Spring这样的可以一个方法一个方法的看....
最后面试官也给我提了些建议:多看看Dubbo,分布式系统,多线程等技术。
最后也是挺感谢面试官的,因为确实给我提了些建议,比上次实习的那个好多了。
总结:
- 想进互联网公司的话一定要把多线程,线程池的相关技术研究透。
- 一些流行的技术,像Dubbo这样的RPC框架,消息中间件,nosql一定要多了解这些前沿的技术,不要天真如我一样以为会个SSM,SSH,会个CRUD稍微了解一点底层原理就可以进阿里这样的公司,会增删改查的人多的是,多线程,高并发,分布式始终是这些互联网公司的核心。
到目前为止,我毕业进阿里的机会也基本用完了,呵呵,拿阿里试水我自己都佩服我自己。
不过经历了春招实习和秋招这两轮面试,我也深刻的认识到了自己的不足,对技术的广度和深度都不足。
广度:多线程,线程池,缓存,RPC,消息中间件,分布式系统...
深度:各种框架的原理,JDK中各种类的底层原理。
关于项目:感觉只是增删改查的项目,人家基本都不会鸟你,多结合着缓存,高并发,高可用,设计模式去做吧,我的这个项目根本毫无亮点,只是对我自己来说,比以前的技术能力有所提升,但是还是达不到这些大公司的要求,加油吧!
如何去学习一个知识点?
xxx是什么?
xxx有什么用?
xxx是如何实现的(底层原理)?
xxx有什么应用场景(重点,考察理论联系实践的能力)?
xxx有什么优点?
xxx有什么缺点?
xxx为什么会有这样的缺点?
xxx如何弥补它的这个缺点?有什么别的组件来解决吗?
你有尝试解决这个缺点吗?
你是如何实现的?
你觉得你实现的和别人实现的哪个更好一些?为什么?
网友评论