Java菜鸟教程,Java学习路线图(视频+笔记+工具)

不知不觉踏入互联网行业已经四年了。前端

回顾当初第一次接触Java,是在大学的课堂,晦涩难懂的知识点,如今还能想起被期末考试支配的恐惧。java

直到踏入互联网这个行业,再回想一下本身整个入行到工做的历程,总结了一下学习Java的路线,但愿能够帮到各位初入行的Java小白。程序员

1、大纲

多数事情,都要有目标的行动,行动为了完成目标。还能够把目标写下来或打印出来,贴到身边明显的地方,有利于督促本身。web

image.png

学Java,可是不能只学Java,由于在计算机这棵大树中,Java只是一片叶子。算法

一个合格的Coder,除了Java,还须要熟悉操做系统、计算机网络、数据库、前端、中间件、框架等等这些东西,若是要成为一个Top Coder,项目管理、英语、沟通、算法也很重要。数据库

就针对就业来讲,我的以为掌握 Java基础、计算机基础、工具的使用、数据库、web前端,Javaweb,框架使用、Linux、中间件,就算一个入门级的Coder了。  编程

1、Java基础

我把 Java 基础部分真正要学的内容列一下。后端

0一、Java 简介 设计模式

  • Java语言概述数组

  • Java中JDK、JRE、JVM三者之间的关系

  • Java中public class与class

  • Java标识符与关键字

  • Java 变量

  • Java 数据类型

  • Java运算符

  • Java 表达式 & 语句 & 代码块

  • Java中的注释

0二、Java 控制语句

  • Java if else

  • Java switch 语句

  • Java for 循环

  • Java while 循环

  • Java break 语句

  • Java continue 语句

0三、Java 数组

  • Java 数组

  • 多维数组

  • Java 数组复制

0四、Java 面向对象(1)

  • Java 类和对象

  • Java 方法

  • Java 方法重载

  • Java 构造方法

  • Java 字符串

  • Java 访问权限

  • Java this 关键字

  • Java final 关键字

  • Java 递归

  • Java instanceof 操做符

0五、Java 面向对象(2)  

  • Java 继承

  • Java 方法重写

  • Java super 关键字

  • 抽象类 & 抽象方法

  • Java 接口

  • Java 多态

  • Java 封装

0六、Java 面向对象(3)

  • 嵌套&内部类

  • Java static 关键字

  • Java 匿名内部类

  • Java 单例

  • Java 枚举类

  • Java 枚举构造方法

  • Java 枚举字符串

  • Java 反射

0七、Java 异常处理

  • Java 异常简介

  • Java 异常处理

  • Java try catch

  • Java throw 和 throws

  • Java 捕获多个异常

  • Java try-with-resources

  • Java 注解

  • Java 注解类型

  • Java 日志

  • Java 断言

0八、Java 集合

  • Java 集合框架

  • Java 集合接口

  • Java List 接口

  • Java ArrayList

  • Java Vector

  • Java Stack

0九、Java 队列

  • Java 队列接口

  • Java 优先级队列

  • Java 双端队列接口

  • Java LinkedList

  • Java 数组队列

  • Java 阻塞队列接口

  • Java ArrayBlockingQueue

  • Java LinkedBlockingQueue

十、Java Map  

  • Java Map 接口

  • Java HashMap

  • Java LinkedHashMap

  • Java WeakHashMap

  • Java EnumMap

  • Java SortedMap 接口

  • Java NavigableMap 接口

  • Java TreeMap

  • Java ConcurrentMap 接口

  • Java ConcurrentHashMap

十一、Java Set

  • Java Set 接口

  • Java HashSet

  • Java EnumSet

  • Java LinkedHashSet

  • Java SortedSet 接口

  • Java NavigableSet 接口

  • Java TreeSet

  • Java 集合算法

  • Java 迭代器接口

  • Java ListIterator 接口

十二、Java 字节流

  • Java IO 流简介

  • Java InputStream

  • Java OutputStream

  • Java FileInputStream

  • Java FileOutputStream

  • Java ByteArrayInputStream

  • Java ByteArrayOutputStream

  • Java ObjectInputStream

  • Java ObjectOutputStream

  • Java BufferedInputStream

  • Java BufferedOutputStream

  • Java PrintStream

1三、Java 字符流

  • Java Reader

  • Java Writer

  • Java InputStreamReader

  • Java OutputStreamWriter

  • Java FileReader

  • Java FileWriter

  • Java BufferedReader

  • Java BufferedWriter

  • Java StringWriter

  • Java PrintWriter

1四、Java 并发编程

  • 进程与线

  • 多线程的入门类和接口

  • 线程组和线程优先级

  • 线程的状态及主要转化方法

  • 线程间的通讯

  • 重排序和 happens-before

  • volatile

  • synchronized 与锁

  • CAS 与原子操做

  • AQS

  • 计划任务

  • Stream 并行计算原理

  • Frok/Join

  • 通讯工具类

  • CopyOnWrite

  • 并发集合容器

  • 锁接口和类

  • 阻塞队列

  • 线程池原理

1五、Java 虚拟机

  • Java 内存结构

  • 垃圾回收

  • JVM 内存区域

  • Java 虚拟机栈

  • class 文件

  • 字节码指令

  • JVM 参数调优

  • Java 对象模型

  • HotSpot

  • 类加载机制

  • 编译和反编译

  • 反编译工具(javap)

  • JIT

  • 虚拟机性能监控和故障处理工具(jps、jstack、jmap、jstat、jconsole、javap)

怎么系统化的学习呢?

推荐一套视频,动力节点老杜讲的Java零基础教程,在 B 站上看。

www.bilibili.com/video/BV1Rx…

2、计算机基础

计算机基础都包括哪些呢?  

计算机组成原理、操做系统、计算机网络、数据结构与算法。   计算机组成原理

先说计算机组成原理,这部份内容主要涉及

  • 计算机系统概述

  • 数据与运算

  • CPU 概述

  • 存储子系统概述

  • 总线和 IO 概述

计算机基础知识的学习建议学习《计算机专业导论》  

计算机专业导论能够帮助你对即将学习的学科有一个大体的了解,知识注重广度而非深度。

软件工程专业的同窗也能够去看《软件工程导论》

3、工具的使用

若是你既想写出质量杠杠的 Java 代码,又想追求开发效率,用 Intellij IDEA 准没错!

能够去 B 站上看一下这个 Intellij IDEA 的教学视频。

www.bilibili.com/video/BV14t…

你们都知道,版本控制系统很是重要!!!!!!

即使你只是一我的在编码,它也能够帮助你建立项目的快照、记录每一个改动、建立不一样的分支等等。

若是你参与的是多人协做,它更是一个无价之宝,你不只能够看到别人对代码的修改,还能够同时解决因为并行开发带来的冲突。  

版本控制系统有不少,其中最突出的表明就是 Git。  

想要把 Git 学好的话,能够看看这套Git教学视频。  

www.bilibili.com/video/BV1iv…

4、数据库

Java 实习工做,不外乎增删改查嘛,不要抱太多幻想,基本上任何一我的的实习经历,都是从 CRUD 开始的。 要学习MySQL 的话,推荐看下边这套  

www.bilibili.com/video/BV1fx…

B站上很经典的视频教程,好评如潮,涵盖MySQL的所有知识点了

这一套组合拳打下来,找一份实习工做我认为是彻底没问题了。

这也是一个 Java 后端程序员必须掌握的技能点,缺一不可!

5、web前端

虽然是做为Java后端开发Coder,可是面对一个完整的项目,与前端有着不可或缺的关系。  

简单的前端知识咱们仍是须要了解的。  

还有就是,也不是全部的公司都是区分先后端的,全栈工程师显然更厉害。  

前端基础技术(HTML/CSS/JavaScript)

  HTML:

www.bilibili.com/video/BV11t…

CSS:

www.bilibili.com/video/BV1tt…

JavaScript:

www.bilibili.com/video/BV1Ft…

另外推荐一些你会遇到的知识学习教程

Linux基础知识(用于作web服务器)

www.bilibili.com/video/BV1Li…

Vue.js(最容易上手的前端框架)

www.bilibili.com/video/BV1q5…

6、JavaWeb

Web阶段事后,就是JavaWeb了。

推荐这两套视频,不一样版本的,直接跟着视频学

JavaWeb【IDEA版本】

www.bilibili.com/video/BV1Yz…

JavaWeb【Eclipse经典版】

www.bilibili.com/video/BV18z…

7、框架

要找到一份 Java 实习工做的话,Spring 的系列框架是要懂一些,不要求多熟练,若是能够掌握一个框架,尤为是 Spring Boot,那对你也有帮助。由于若是你不会这玩意的话,基本上是作不了项目的。

主要涉及的内容有:

  • Spring

  • Spring MVC

  • MyBatis

  • Spring Boot

关于 SSM(Spring+Spring MVC+MyBatis)的学习,能够看下面这个视频。

www.bilibili.com/video/BV1Ug…

关于 Spring Boot 的学习,能够看下边这个视频

www.bilibili.com/video/BV1pK…

学了 SSM + Spring Boot,就能够上手实战项目了,像 GitHub 上的 vhr 和 mall,都是不错的练手项目,强烈推荐。  

8、互联网分布式技术

这时候你的水平仍是仅仅存留在对框架的简单运用上,要想进一步学习,还要找一些框架的源码,进行深刻了解。  

除此以外还有这个时候的你应该对设计模式了如指掌,还须要看一些关于代码编写优化的书,提升本身的代码能力。

能够学习分布式架构、微服务等提高本身的技术。

随着咱们的业务量愈来愈大和越重要,单体的架构模式已经没法对应大规模的应用场景,并且系统中决不能存在单点故障致使总体不可用,因此只有垂直或是水平拆分业务系统,使其造成一个分布式的架构,利用分布式架构来冗余系统消除单点的故障,从而提升整个系统的可用性。

同时分布式系统的模块重用度更高,速度更快,扩展性更高是大型的项目必不可少的环节。

而微服务架构引入策略 – 对传统企业而言,开始时能够考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。

既然已经踏入互联网圈子,成为程序员中的一员,就要秉持“一直学习”的观念,常常更新本身的技术库,对于专业的java程序员来讲真的不夸张!

推荐视频:  

总之,先把主要知识点掌握完全掌握,慢一点是正常的,求快得不偿失,等把底层基础知识打牢,在学东西的时候就会快不少,之后彻底能够多找项目练手,学习效率嗖嗖的,有时候慢就是快。

相关文章
相关标签/搜索