前言
本文适用于刚开始学习Java,不知从何下手,处在迷茫中,但是有一颗想进大厂心的打工人们。
遥想当初自己刚开始学习Java的时候,异常的迷茫与痛苦。迷茫是因为根本不知道从哪里开始学起,遂从网上查看Java的学习路线。看完以后不仅迷茫了而且还变的痛苦了。
什么初级、中级、高级,什么XML、HTM和JavaScript,什么Oracle、Redis和MySql,什么Spring、SpringBoot、MyBatis、Struts和SpringMVC,什么《Java编程思想》(那么老厚的一本书,打开第一页直接劝退)、什么《高性能MySQL》(又是一本大厚书,直接人傻了)。如果不是有一颗打工魂,怕是直接从入门到放弃。
好了,也废话了这么多,是时候进入主题了。首先明白我们学习Java的目的是什么,是进大厂…大厂…厂。 好了,知道了我们要干嘛了,那么怎么才能进大厂??? 那就是面试 面试 还是面试。 大厂面试会不会很难,会。难还咋进,那就需要学习。怎么学习,好了重点来了 来了。
听说看完了的都进大厂了
学习就是为了有一天能够变成Money,现在这一天已经来到你的面前了。
面试、考试,这两个词是不是很相近,对它们都带“试”。考试我们都熟悉,从小学初中,再到大学不知道考过多少回试了。(楼主应该是98次吧,为啥不是99次或者97次,而是98次呢,因为楼主也忘了。。。)。号称有万人过独木桥的高考,我们都冲过来了,还怕一个小小的面试。面试虽小,但是我们也不能轻视它。你若问我,码老师,发生什么事,为什么不能轻视它。那,码老师告诉你,就在昨天两个年轻人找上门来说,码老师,我面试过了看到Money了。我说年轻人你没有码德,怎么能只看Money呢?
记住这句话,重点要考。面试就是应试,面试就是应试,面试就是应试。 说到应试大家比我都熟,比我都兴奋。不就是套路,不就是背么。对就是固定套路,就是背。但是你要知道套路什么,背什么。
“套路”知识点
计算机网络、操作系统、Java基础、算法题、框架、相关项目、数据库、设计模式。
计算机网络&操作系统
不管你是科班还是非科班出身,不管你时间够用还是不够用,你都不需要再花时间去预习。你只需要会背就行,对就像被英语那样每天早上开背就行了。光背不行,我们得知道背哪些啊。下面我来告诉你,一、通过牛客网,这也是程序猿面试时候的主战场,里面会有个“面经”板块,对着面经硬怼就行。(例如TCP的三次握手和四次挥手)二、你也可以看一下GitHub上面大佬们总结出来的知识点。
链接: .https://www.nowcoder.com/ (牛客网)
链接: https://github.com/Snailclimb/JavaGuide .(GitHub上Guide哥总结的知识点,多谢Guide哥的分享)。
Java知识点
重中之重,也是花时间最多的地方。这一块牵扯的内容比较多,楼主来大致说一下。
语法:这个不用多说,建议大家找相关的Java的视频(如B站),跟着学习就行。当然要动手去敲,切莫眼高手低。
容器:常用的如 Map、List等。其中HashMap是面试的重点。对于Java中的容器学习,建议先动手去实验容器相关的用法,然后再去网上查看相关知识点(如牛客网中面经版块),后面可以根据自己学习情况其查看相关源码。
多线程: 面试中常客。建议查看牛客面经版本中会问到的问题,然后背下来。再去看看相关的书籍加强理解与记忆。推荐的书为方腾飞版的《Java并发变成的艺术》。
JVM: 面试重点。建议先看牛客面经,然后再带着问题去看相关书籍加强自己的理解与记忆。一定要背下来,只有背下来才是自己的。推荐书籍周志明的《深入理解Java虚拟机》。
数据库
数据库只需要掌握关系型数据库MySQL&非关系型数据库Redis。
如果时间充足的话,建议跟着视频先或者博客先学习相关的Sql语句&Redis相关的语句。
如果时间来不及,直接背面经,带着问题去书中找答案。推荐书籍《高性能MySQL》&姜承尧的《MySQL技术内幕》&《Redis设计与实现》。
算法题
现在大厂面试中越来越重视候选人的算法能力,一般会在面试的过程中让你直接开撕,如果没有写过的话,加上紧张,场面会一度非常尴尬,脸红脖子粗。
所以这里给出的建议是刷题、刷题、刷题。刷题的网站便是码农必备的LeetCode。个人建议先将剑指Offer上面的算法题刷完,然后再将LeetCode上面的各个题型都刷一刷。刚开始的时候如果没思路,就直接看答案,不然会直接自闭(楼主的惨痛教训)。刷题也是应试,记不住的就背下来,孰能生巧。
链接: https://leetcode-cn.com/.
框架
框架这块不用画太多时间。了解下Spring 和Springboot是什么&怎么用的就行了。
面试中常问的便是Spring,(例如:你对AOP和IOC是怎么理解的?)基本上只需要看面经背下来就可以。当然,某里大厂会问有没有看过源码之类的问题。这个最好找一块Spring相关的源码进行研读,然后查看相关面经。直接将问题背下来就可以了。
项目
这个是重点,自己简历上面一定要有一个项目经历。(常见的便是秒杀||商城,可根据自己的需求找相关的项目练手)。项目建议的话就是尽量能用到Redis 、Mysql 、Spring、Java、Mq(消息队列)。一定要亲自敲一遍,对项目的细节了然于胸。
设计模式
单例模式、策略模式、工厂模式、装饰器模式等等。其中单例模式是重点,要求能够将单例模式代码熟练写出来,
其他
如果上面都已经掌握了。可以关注下面知识,面试中也会出现。
分布式:RPC框架、Zookeeper。
高并发:消息队列(MQ)、读写分离(数据库)、分库分表、负载均衡。
高可用:CAP理论、BASE理论、限流、熔断、降级。
结语
**以上只针对面试,只针对面试、只针对面试。面试本质也是一种应试,只有掌握套路,掌握知识点才能收割大厂offer。**活到老学到老,要想成为真正的高手,还有很多路要走。但是我们先要拿到Money,才能继续激励自己。上面所说的每个知识点,有时间一定要对每个知识点延伸,一定要延伸。(例如:说说你对HashMap的理解?等你说完后面试官可能继续问HashMap在1.7和1.8中的区别?负载因子为何是0.75,什么时候扩容,什么时候缩容,有什么缺点等等)。
祝各位同学都收获大厂offer。