这是一个不知名的本科生的一点心酸经验啊,我当年(大二)也是想逃离学校流水线培训的传统,想去主流的互联网公司,所以就奋斗啊奋斗啊,现在大三,在北京中关村实习,校招关键还是看基础,因为工作的软件各种各样,进公司就靠基础去学习的,几乎每一个公司的面试官真的对一些问题是必问,要做的是天天有计划地积累!写代码!看书!总结!看别人的面试经历!考考自己!在深度的基础上又有一定广度,还有就是实习和项目的问题,真的有那些经验的确可以加分,但是没有也可以,你的基础一定要扎实,我当年在学校就没有实习机会,也没有高端的实验室,所以只能自己找找资料,看看学长们的学习经验,好好把基础学好,多写写软件!
目标的话:我觉得达到面试,的时候你能够很自信的表现自己的积累的感觉就很棒了!
说说我觉得重要的几点吧:
1,数据结构,原理,应用,复杂度等基础一定熟练,结合算法写代码。
2,算法,说白了,面试的时候面试官不是来为难你的,大都会问到经典的题目,平时肯定要多写代码,有篇文章总结常考算法题目很不错的:让 BAT 的 Offer 不再难拿。每天练两三道吧,时间一久你就有了那种做算法寻找的突破口的思维了,刷刷题leetcode,牛客网(比如网易校招就会在牛客网上考,好多标准格式输入输出,不会啊~)。
3,java,我个人认为一定要写软件,最好是可以开源,那种感觉真的不一样,比如你写一个使用注解的mvc,你就有机会吧代理和注解好好学一遍,比看书学这两块儿好多了,或者了解mvc三个模块儿的交互,bean管理等等,写软件就是以结果为导向,真正为了达到一个目标动用和熟练自己的能力,而不是一味的写demo来寻求提升。
4,校招java肯定会问到jvm的,垃圾收集,内存模型,内存管理,线程安全,ClassLoader,类加载,字节码编译(挺重要的),javac等等,出名的书有《深入理解java虚拟机》,《分布式java应用:基础与实践》也有一些jvm的总结,写点demo,准备面试前看看别人的面经,自己试着回答回答,慢慢记得jvm就很熟练了。
5,其他一些比较重要的java基础有nio,io,集合框架源码等,我之前面试几家知名互联网公司,这些都问到了,看看Netty的源码,不用复杂,看netty3也很好了,可以的话自己用NIO写一个可以搭建echo服务器框架demo,这样你的nio就很熟练了,还有看看Map,Collection接口下的集合的源码,比如HashMap,ArrayList等等,是否可以为空,线程安全否,排列,异常处理,遍历等等。
6,数据库我觉得和java一样重要吧,虽然现在NoSQL什么的,MySQL仍然使用非常广,使用可以网上查查不用看书了,《高性能MySQL》确实不错,挑挑重要章节看,面试一般都会问数据库的,比如索引优化,分区分表,查询优化,索引数据结构,sql语句熟悉。
7,并发,这个内容也很多啊,比如《java并发实战》这本书就可以看得出,比如Semaohore,读写锁,显式锁,看看并发集合的源码,学学人家的源码怎么应用高并发的,比如ConcurrentHashMap的热点域,分段锁,别人怎么解决死锁的,我记得LinkedBlockingQueue里面的每次上锁和放开锁的方式都是一致算是个方法。可以写写demo,测测运行时间,压测,不断增加复杂的同时也提升了自己的并发编程能力(我觉得面试官很喜欢文ThreadLocal啊哈哈)。
---------------------------------------------------书
说说我觉得不错的资料吧:
《剑指offer》自己时间比较紧只是挑看了些,但是和编程之美一样,需要好好读的。
《编程之美》。
《effective java》好多面试深入的java问题在这上面能解答,真是非常值得一读,比如问你在什么时候需要定义自己的序列化?虽然翻译不好~。
《架构探险——从零开始写Java Web框架》从demo到玩开源的升华,虽然是大神的经验,但确实可以学到好多。
《设计模式之禅》这个书很有趣,也可以为了节省时间,可以作为网上设计模式博客资料的补充。
《深入理解java虚拟机》很经典,我也至少看了4遍。
《分布式java应用:基础与实践》个人觉得非常好,让你少走弯路啊。
《how tomcat works》这个就是知其然,知其所以然的好资料了。
《Java并发编程实战》这个应该是必读吧,并发单独写本书,课件内容需要好好研究的,多写代码压测也很有意思的。
《gradle实战》或者《maven实战》个人觉得maven在工作中用的多些,但gradle更新。
《高性能MySQL》看了这个面试mysql的知识也不怕什么了吧~
《MySQL技术内幕:InnoDB存储引擎》高人推荐,看的不多,但是绝对厉害啊。
《Java核心技术》没看过第二卷,其他知识从另外的书上积累的。
《tcp/ip协议 卷一》经典,个人觉得记不了那么多啊,面试问的网路很少问得生僻~。
资料: