大学四年如何学好Java拿到offer?这条过来人的Java学习路线送给你(大一篇)

350 阅读8分钟

文编|JavaBuild

大家好呀,我是JavaBuild,以后可以喊我鸟哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,厚积薄发!

前言

最近工作的时候,多少有点惆怅,公司来了很多985/211的校招生,在和他们交流的过程中,发现自己很多基础知识点早已忘得一干二净,回想起自己大学的几年,浪费了太多的时间在赚外快上,忽略了全面扎实的好好学一学Java的重要性,现在想想有点后悔,但好在一切都还来得及!

于是乎,在某个夜晚,心血来潮,俺确定重学一遍,以此来弥补遗憾,说干就干,先整一个学习路线出来,这条Java学习路线虽然以大学四年作为贯穿学习线,但它同样也适合非软件专业的自学者、本科生、研究生、甚至于像俺一样想牢固一下基础的小伙伴们。

在开始学习Java之前,我们心里要有这样的几个疑问,什么是Java?是干嘛的?和其他语言相比它的优缺点是什么?学了它好找工作不?找的工作money多不?尤其是最后一个疑问,它的答案是学好Java的关键!不过这些问题,鸟哥这里并没有答案,答案需要你们自己去找寻!

现在回到关键问题上来,如何才能学好Java呢?我的理解是这样滴。

第一步:Java基础(JavaSE)

先附上整个大一的学习路线图,内容很多,请保持耐心认真学完,万丈高楼平地起,地基很重要!!!

1.1 基础语法

每一门技术语言都是在处理数据,整个互联网也都是数据的支撑,对于同样的数据,每一门语言都有其特有的定义方式,整数是什么类型、中英文是什么类型、小数又是什么类型、是与否又是什么类型,这就是Java的数据类型的定义,同时,在基本语法中我们还要学习Java中的运算、逻辑处理等。

1.2 面向对象

Java是一门面向对象的语言,面向对象如何理解?类又是什么?它的三大特性又是什么?这章节学完你就有答案了。

1.3 容器

容器,见名知意!用来存储数据的器皿,不同类型的容器存储不同类型的数据,如同碗里装饭,杯里盛水一样的道理。

1.4 异常

若所有的程序都成功运行,那么异常就毫无作用,但这是不可能的,所以异常就是用来定义程序非正常运行下的状态表现,可以说异常是对程序的一种保护,对用户的友好交互,对程序员查找问题的绳索!

1.5 泛型

这个词有点专业了,初学者可能听到“泛型”会很懵逼,其实也很好理解,Java1.5被引入后泛型就被广泛延用至今,所谓泛型就是参数化类型,在创建一个对象时不指定它具体的类型,当别人使用它时,再去定义它具体属于什么类型,就像一个铁块,它被生产出来之后就是一个铁块,铁匠把它打造成刀它就是刀,打造成斧头它就是斧头。

1.6 注解

注解也是Java1.5被引入的,说白了就是给你的对象打一个标签,让它拥有特定的作用和特点,它的诞生节省了程序员不少的工作。

1.7 枚举

枚举,也是见名知意的一个知识点,将一些属性进行分类归档,作为一个枚举,供所有需要用到这些属性的对象使用。

1.8 I/O

I/O是Input和Out的缩写,进出之类,同样针对的是数据,往一个系统里写数据,导出为一个word或txt这就是I/O来干的活。

总结

以上是Java基础部分大致需要学的东西,鸟哥以通俗易懂的语言解释了一下每个章节的特点,那么具体该怎么学习呢?主要还是三步走,视频、看书、刷博客

视频的话,优选B站,里面有大量的Java学习视频,其中浙江大学翁恺老师的《Java程序设计》挺不错,简洁易懂,此外《尚学堂高淇Java300集》,《尚硅谷Java基础全套教程》也都还行,根据自己喜好选择,好的学习者是懂得如何优胜劣汰的。

看书的话,这里推荐几本《Java核心技术卷1》、《Java编程思想》、《阿里巴巴Java开发手册》前两本很厚,并且读起来无趣,所以一开始可以配合着视频,当作字典书籍看,等后面学透了再回头看,就会发现惊喜,最后一本一定要好好读读,想要电子版的可以私聊,有最新电子版。

刷博客的话,国内有很多技术站点,诸如CSDN、掘金、简书、菜鸟教程、博客园、开源中国、知乎、GitHub、知识星球、微信公众号等等,可以自己选择,不过博客学的东西太零散琐碎,不够系统,建议当作日常积累和阅读的习惯即可。

第二步:Java并发多线程

并发多线程是Java稍微高阶一点的知识点,又非常非常的重要,所谓的并发就是多个作业在同一个时间段内执行,像双11和618一样,短时间内可以高达亿级的订单操作,这就需要用高并发技术来保障功能无损。

2.1 多线程

何为线程?线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。通俗点说如果你打开微信看作打开一个进程的话,在微信里聊天、语音、刷朋友圈就是每一个进程,每个进程独立但又全归属与微信这个进程。所谓的多线程,就是多个线程之前来回的切换,运行,以满足业务的需要。

2.2

不同的线程之前的切换,必定会涉及到资源占用的冲突问题,这就是锁的含义,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方的资源,所以这两个线程就会互相等待而进入死锁状态。

2.3 线程安全

多个线程之间的切换,也必定会带来数据的不安全性,这时候锁的作用就得以发挥了,合理的运用好锁,可以让线程变安全,如同你家门上有把锁,可以有效安全的保证财务安全。

2.4 JUC****工具类

同样时Java1.5诞生的东西,全称java.util.concurrent,是一个工具包,里面提供者很多处理并发问题的类,或者说工具,合理的使用可以事半功倍!

总结

学习的话和第一步套路一样,这面就不在赘述了,推荐基本相关书籍,有空多看看《Java并发编程艺术》、《深入浅出Java多线程》、《Java并发编程之美》,哦,对了,B站上黑马的《Java并发编程》视频也可以看看。

第三步:Java虚拟机

Java虚拟机简称JVM,它之于Java如同引擎与飞机之间的关系,没了它根本飞不起来!

JVM是Java语言的核心,也是Java语言一次编译跨平台运行的实现者,你写的代码如何转化为机器能够识别的语言,所有的数据如何存储等等,都需要依靠它来实现

3.1 类加载机制

类加载的步骤为,加载 -> 验证 -> 准备 -> 解析 -> 初始化,又是一个五步走战略,将你写的Java类或者说对象也行,编译成JVM可以识别的东西后,通过JVM的类加载机器,加载到内存中,进而在解析运行在计算机上。

3.2 字节码

编译成什么东西呢,这个东西就是字节码,字节码文件,JVM再将其解释成计算机可以识别的机器码。

3.3 运行时数据区域

在JVM运行时所划分出来的区域,用以存储运行时所需要的各种数据

3.4 垃圾收集

在一个系统长时间运行时,必定会带来很多废弃的对象,我们称之为垃圾,那么良好的垃圾收集有利于系统的稳定运行。

3.5 内存的分配与回收

在JVM运行需要使用到内存,合理的分配内存以及回收内存,是性能调优的重要点

3.6 性能监控和调优

JVM的性能调优是一个优秀的Java工程师的必备技能

总结

JVM是面试八股文必考的,所以这部分还是要多花点时间的,如果能够把周志明老师的《深入理解Java虚拟机》读明白,这部分你算学成了

以上就是大一新生们学习Java的三步走战略啦,内容也不算多,毕竟刚刚大一,还是要体验一下大学生活的嘛,谈个恋爱,报个社团啥的,当你们按照路线学完之后,就算是四分之一个程序猿咯,想更进一步,那我们在大二篇见!拜拜。