前言
思来想去,还是觉得有必要把自己这一路的经历写出来给小伙伴分享分享,也感谢身边人对自己这一路来的帮助。
春招体验
大一学C语言,大二学了点C++、数据结构、基础算法、设计模式、数据库。大三开始接触Java,从2017年2月底开始,就在牛客上寻找内推。美团、阿里、网易、京东、腾讯等等,只要讨论区有的招聘信息,能投的都投了。
蚂蚁金服-研发实习生JAVA一面
1.做一个两到三分钟的自我介绍。(一分钟不到就介绍完了....)
2.从下往上说一下OSI七个分层?
3.TCP、UDP属于哪个层?有什么区别?
4.FTP在哪个层?
5.说说SQL中连接(join)?
回答了inner join和outer join,又说了left join与right join和区别,然后他又问我那inner join呢?(当时直接卡壳了,一脸懵逼,无奈放弃回答,后来想想也真是好笑....)
6.说说数据库事务?
7.了解数据结构吗?单向链表概念及特点?
(突然抛出什么是链表?有点惊讶,这问题也问得有点简单了吧?难道有什么坑?)
回答:链表就是带着指针的结构体,含数据域和指向下一个节点的地址。
8.头部和尾部有什么特点?
答:头部没有前驱节点,尾部指向NULL??增删快于数组,遍历慢于数组??
9.HashMap原理
底层是数组加链表实现的哈希表。允许null作为键,null作为值。线程不安全。
10.说一本印象深刻的书?回答《深入理解Java虚拟机》
11.方法区里存放什么?
12.怎样判断是否需要收集?
13.什么可作为GCRoot的对象?
14.说说红黑树这个数据结构?
15.你都用过什么框架?
(如果再问我一次,打死也不会再说Spring了,只是看博客学过压根没用过,最后只能磕磕绊绊,不知所云......基本上这块就知道自己要gg了)
16.学习编程的方法、渠道?(看博客,网站)?上哪些网站?
17.看过GitHub上的开放源码、项目吗(比如阿里,腾讯团队的)?
讲了讲druid,当时还是背readme文件的
面试持续30分钟,毫无悬念gg......
春招虽然积极热情,但是当时水平有限,身边也没有小伙伴一起互帮互助。其余的一些公司需要笔试的最后也是因为基础太弱都没过。后来转变战略放弃校招实习,开始在实习僧上投散招了,原因是可以避免笔试......期间经历了几个电话面试,慢慢总结了一些经验。
翼展科技(西安)有限公司(研发实习生offer)
于是一个月快速学完框架,做了一个ssh的玩具项目。那时候四月底,大多数公司春招也已经结束,只能投本地小公司,最后面试了翼展科技(西安)有限公司并拿到研发实习生offer。这个时候面试基本上不会太紧张了。
技术面:
1.做一个自我介绍。
2.数据结构了解多少?说说B+树。
B+树的应用如我们所熟知的MYSQL索引实现。balaba...感觉最后说了不少,但是没突出重点。
3.了解JDK源码吗?说说ArrayList和HashMap?
因为这是本人中简历中标出的两个,所以被针对性提问。
ArrayList实现List接口,底层是由数组实现,随机查找速度快0(1),插入和删除因为要移动数组元素所以效率慢。
HashMap实现Map接口。底层是数组加链表实现,线程不安全,允许存储Null键值对。装载因子0.75.
4.项目中使用什么ORM框架?
Hibernate
5.Hibernate和Mybatis如何比较?
Hibernate封装的功能完全,不需要手写SQL语句;Mybatis索引效率快,要手写SQL语句,但该特点可实现有针对性SQL优化...
6.说说Spring AOP?
面向切面编程:如声明式事务、日志等功能
7.IOC呢?
解释依赖注入。
之前程序员可通过new创建新实例对象,但是Spring可向容器索取使用注解: @Autowired自动装配....