一.概述
今天是12月5日,下周一就是物理半期考试,在数图的电脑前,姑且记录下此时的心路历程,以及总结一下之前的复习成果。秋招之初,看着实验室里的学长学姐都在忙着找工作,虽然最后战果颇丰,但是过程还是十分艰辛。我也觉得自己现在这个时候也该进行了一个系统性的复习备战了。其实之前一直有在把之前学习到的内容写成文档,放在硬盘上,但是总觉得不系统,不够全面,加上趁着物理老师刚才对我的那番劝勉,现在是时候就要发起一个春招的总进攻了,过一过高三的苦滋味。鲁迅有云:不在沉默中爆发,就在沉默中灭亡。由于自己的方向是java方向,所以姑且按照下面这几个部分来进行复习的安排。
- 算法
- java基础部分
- java并发部分
- java虚拟机部分
- 数据库部分
- 框架原理部分
- 计算机网络
- 操作系统
- 设计模式
二:算法
对于没有acm背景的普通高校的在校大学生来说,我个人浅薄的经验告诉我下面这条道路是可以行得通的,并且是足够去应对大厂的面试的,自己也打算按照这条道路去准备算法方面的面试,个人觉得如果这条路走通的话,研发岗算法部分应该是没问题了的,如果是算法岗,据个人愚见,可能还需要其他的准备。
leetcode+剑指offer+牛客网左神的视频+左神的代码指南+一本专门描述数据结构与算法的经典书籍
(海量数据的题目可参考https://blog.csdn.net/v_july_v/article/details/7382693)
其中主要包括的知识点有:
- 栈与队列
- 链表
- 字符串
- 数组
- 二叉树
- 排序:二分,快排,归并
- 图:深度/广度,库鲁斯卡尔等
- 动态规划
- 贪心算法
- 大数据/海量题目:布隆....
三:java基础部分
对于国内的大厂,校招比社招比较大的区别在于,公司更加愿意培养应届毕业生,因为可塑性强,所以面试方面也会格外地注意面试人基础的部分。我觉得java基础的部分主要有下面的一些部分(不全面)。
- java关键字原理剖析:static,final,finally 等
- 基本数据类型
- String类
- 抽象类与接口
- java反射
- java回调机制
- 泛型
- 多线程部分
- 序列化
- 异常
- 集合类
- IO,NIO,BIO,AiO
- 各个版本的新特性
针对上述内容的知识点,个人采取的复习路线是:书籍+配合优质的博客+自己动手敲对应的案例
书籍:《java程序员面试宝典》,《java核心技术卷1,2》,《疯狂java讲义》《java特种兵》(个人觉得这些差不多够用了)
优质的博客:学会科学上网之后,遇到相关的知识点,先搜索出来,结合课本去学习,效果十分好,前面的一般都是比较优质的博客(貌似我都是这样找的,而且比如你发现了一篇优质的博客,同理你会发现他的其他内容你同样也十分受用,如,李学凯,兰亭风雨等)
案例:结合自己写的代码去验证它是否合理与正确
四:java并发部分
关于并发的总体部分,我觉得可以参考一下这张图片(因为图片太大了,所以大家可以去这个网站上下载!)
http://cmsblogs.com/?p=2611(同样也是大牛博客,从中学到了很多,强力推荐!)
主要的知识点:
- java内存模型
- juc里面的锁
- 并发容器
- cas
- volatile
- synchronized关键字
- 原子类
- 阻塞队列
- 并发工具类
- juc的线程池
书籍:《java并发编程艺术》《实战java高并发程序设计》《java并发编程实战》
优质的博客:
并发编程网:http://ifeve.com
java技术驿站:http://cmsblogs.com/?cat=151
搜索引擎:谷歌(谷歌爸爸就是好!嘻嘻~)并发上平时有啥问题,不懂的问题问他基本都会有很好的解答!
学习路线安排:书本+优质的博客+搜索引擎+demo+juc源码理解(高并发的话,高校的项目内容涉及比较少,可具体结合书本和网上的案例去自己实践一下)
五.java虚拟机部分
书籍:《深入理解java虚拟机》——神书不用多余的解释!
看书本和面经经常被问到的虚拟机的知识就差不多足够了!
学习路线:理论的知识(书本)+虚拟机调优的部分(书本也有,现在企业对jvm实际的调优能力越来越看重了)
六.数据库部分(mysql部分)
书籍:
《mysql必知必会》(基础)
《高性能mysql》(挑选重点)
《深入浅出mysql》(挑选重点读)
《MySQL技术内幕:InnoDB存储引擎(第2版)》(同上)
博客:https://www.kancloud.cn/kancloud/theory-of-mysql-index/41857(网上的博客很多来源于以上书籍的总结,数据库看书就很好了)
学习路线:书籍+博客+搜索引擎(谷歌!!!)
主要知识点:
- 主键外键
- 存储过程
- 触发器/视图
- 索引
- 事务
- ACID
- 存储引擎
- sql优化
- 数据库锁
- 主从复制
- 最左前缀
- 其他
最后.关于时间安排
现在距离春招大概还有70天,时不我待!这个复习方案是我自己总结了许多别人的面经和自己的亲身体会出来的,不足之处希望大家多多包涵,更希望这篇博客能给大家带来一定的帮助,春招找实习的时候,能够找到一份满意的实习!!!
附上个人的复习时间安排:
第一阶段:java基础知识复习(11天)
- java关键字以及使用+基本数据类型(1天)
- String类和相关类+抽象类和接口(1天)
- 多线程部分+序列化(1天)
- java反射+回调+异常(2天)
- 三种IO(4天)
- 各版本新特性(2天)
第二阶段: