大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
不知不觉踏入互联网行业已经四年了。
回顾当初第一次接触Java,是在大学的课堂,晦涩难懂的知识点,现在还能想起被期末考试支配的恐惧。
直到踏入互联网这个行业,再回想一下自己整个入行到工作的历程,总结了一下学习Java的路线,希望可以帮到各位初入行的Java小白。
多数事情,都要有目标的行动,行动为了完成目标。还可以把目标写下来或打印出来,贴到身边明显的地方,有利于督促自己。
学Java,但是不能只学Java,因为在计算机这棵大树中,Java只是一片叶子。
一个合格的Coder,除了Java,还需要熟悉操作系统、计算机网络、数据库、前端、中间件、框架等等这些东西,如果要成为一个Top Coder,项目管理、英语、沟通、算法也很重要。
就针对就业来说,个人觉得掌握 Java基础、计算机基础、工具的使用、数据库、web前端,Javaweb,框架使用、Linux、中间件,就算一个入门级的Coder了。
我把 Java 基础部分真正要学的内容列一下。
01、Java 简介
Java语言概述
Java中JDK、JRE、JVM三者之间的关系
Java中public class与class
Java标识符与关键字
Java 变量
Java 数据类型
Java运算符
Java 表达式 & 语句 & 代码块
Java中的注释
02、Java 控制语句
Java if else
Java switch 语句
Java for 循环
Java while 循环
Java break 语句
Java continue 语句
03、Java 数组
Java 数组
多维数组
Java 数组复制
04、Java 面向对象(1)
Java 类和对象
Java 方法
Java 方法重载
Java 构造方法
Java 字符串
Java 访问权限
Java this 关键字
Java final 关键字
Java 递归
Java instanceof 操作符
05、Java 面向对象(2)
Java 继承
Java 方法重写
Java super 关键字
抽象类 & 抽象方法
Java 接口
Java 多态
Java 封装
06、Java 面向对象(3)
嵌套&内部类
Java static 关键字
Java 匿名内部类
Java 单例
Java 枚举类
Java 枚举构造方法
Java 枚举字符串
Java 反射
07、Java 异常处理
Java 异常简介
Java 异常处理
Java try catch
Java throw 和 throws
Java 捕获多个异常
Java try-with-resources
Java 注解
Java 注解类型
Java 日志
Java 断言
08、Java 集合
Java 集合框架
Java 集合接口
Java List 接口
Java ArrayList
Java Vector
Java Stack
09、Java 队列
Java 队列接口
Java 优先级队列
Java 双端队列接口
Java LinkedList
Java 数组队列
Java 阻塞队列接口
Java ArrayBlockingQueue
Java LinkedBlockingQueue
10、Java Map
Java Map 接口
Java HashMap
Java LinkedHashMap
Java WeakHashMap
Java EnumMap
Java SortedMap 接口
Java NavigableMap 接口
Java TreeMap
Java ConcurrentMap 接口
Java ConcurrentHashMap
11、Java Set
Java Set 接口
Java HashSet
Java EnumSet
Java LinkedHashSet
Java SortedSet 接口
Java NavigableSet 接口
Java TreeSet
Java 集合算法
Java 迭代器接口
Java ListIterator 接口
12、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
13、Java 字符流
Java Reader
Java Writer
Java InputStreamReader
Java OutputStreamWriter
Java FileReader
Java FileWriter
Java BufferedReader
Java BufferedWriter
Java StringWriter
Java PrintWriter
14、Java 并发编程
进程与线
多线程的入门类和接口
线程组和线程优先级
线程的状态及主要转化方法
线程间的通信
重排序和 happens-before
volatile
synchronized 与锁
CAS 与原子操作
AQS
计划任务
Stream 并行计算原理
Frok/Join
通信工具类
CopyOnWrite
并发集合容器
锁接口和类
阻塞队列
线程池原理
15、Java 虚拟机
Java 内存结构
堆
栈
垃圾回收
JVM 内存区域
Java 虚拟机栈
class 文件
字节码指令
JVM 参数调优
Java 对象模型
HotSpot
类加载机制
编译和反编译
反编译工具(javap)
JIT
虚拟机性能监控和故障处理工具(jps、jstack、jmap、jstat、jconsole、javap)
怎么系统化的学习呢?
推荐一套视频,动力节点老杜讲的Java零基础教程,在 B 站上看。
www.bilibili.com/video/BV1Rx…
计算机基础都包括哪些呢?
计算机组成原理、操作系统、计算机网络、数据结构与算法。 计算机组成原理
先说计算机组成原理,这部分内容主要涉及
计算机系统概述
数据与运算
CPU 概述
存储子系统概述
总线和 IO 概述
计算机基础知识的学习建议学习《计算机专业导论》
计算机专业导论可以帮助你对即将学习的学科有一个大致的了解,知识注重广度而非深度。
软件工程专业的同学也可以去看《软件工程导论》
如果你既想写出质量杠杠的 Java 代码,又想追求开发效率,用 Intellij IDEA 准没错!
可以去 B 站上看一下这个 Intellij IDEA 的教学视频。
www.bilibili.com/video/BV14t…
大家都知道,版本控制系统非常重要!!!!!!
即便你只是一个人在编码,它也可以帮助你创建项目的快照、记录每个改动、创建不同的分支等等。
如果你参与的是多人协作,它更是一个无价之宝,你不仅可以看到别人对代码的修改,还可以同时解决由于并行开发带来的冲突。
版本控制系统有很多,其中最突出的代表就是 Git。
想要把 Git 学好的话,可以看看这套Git教学视频。
www.bilibili.com/video/BV1iv…
Java 实习工作,不外乎增删改查嘛,不要抱太多幻想,基本上任何一个人的实习经历,都是从 CRUD 开始的。 要学习MySQL 的话,推荐看下边这套
www.bilibili.com/video/BV1fx…
B站上很经典的视频教程,好评如潮,涵盖MySQL的全部知识点了
这一套组合拳打下来,找一份实习工作我认为是完全没问题了。
这也是一个 Java 后端程序员必须掌握的技能点,缺一不可!
虽然是作为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…
Web阶段过后,就是JavaWeb了。
推荐这两套视频,不同版本的,直接跟着视频学
JavaWeb【IDEA版本】
www.bilibili.com/video/BV1Yz…
JavaWeb【Eclipse经典版】
www.bilibili.com/video/BV18z…
要找到一份 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,都是不错的练手项目,强烈推荐。
这时候你的水平还是仅仅存留在对框架的简单运用上,要想进一步学习,还要找一些框架的源码,进行深入了解。
除此之外还有这个时候的你应该对设计模式了如指掌,还需要看一些关于代码编写优化的书,提高自己的代码能力。
可以学习分布式架构、微服务等提升自己的技术。
随着我们的业务量越来越大和越重要,单体的架构模式已经无法对应大规模的应用场景,而且系统中决不能存在单点故障导致整体不可用,所以只有垂直或是水平拆分业务系统,使其形成一个分布式的架构,利用分布式架构来冗余系统消除单点的故障,从而提高整个系统的可用性。
同时分布式系统的模块重用度更高,速度更快,扩展性更高是大型的项目必不可少的环节。
而微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。
既然已经踏入互联网圈子,成为程序员中的一员,就要秉持“一直学习”的观念,经常更新自己的技术库,对于专业的java程序员来说真的不夸张!
推荐视频:
Dubbo视频教程:www.bilibili.com/video/BV1Sk…
Redis视频教程:www.bilibili.com/video/BV14t…
Maven多模块管理:www.bilibili.com/video/BV1kg…
Linux视频教程:www.bilibili.com/video/BV1dt…
SpringCloud视频教程:www.bilibili.com/video/BV1ZV…
SpringCloud Alibaba视频教程:www.bilibili.com/video/BV1nK…
Nginx视频教程:www.bilibili.com/video/BV11V…
Spring Session视频教程:www.bilibili.com/video/BV1iK…
FastDFS视频教程:www.bilibili.com/video/BV1ta…
RabbitMQ视频教程:www.bilibili.com/video/BV1Ap…
MyCat视频教程:www.bilibili.com/video/BV1gK…
Docker视频教程:www.bilibili.com/video/BV1QA…
Kubernetes(k8s)视频教程:www.bilibili.com/video/BV1KU…
MySQL集群视频教程:www.bilibili.com/video/BV1Rg…
SVN视频教程:www.bilibili.com/video/BV1ux…
Apache Shiro视频教程:www.bilibili.com/video/BV14T…
大型互联网电商项目:www.bilibili.com/video/BV1RQ…
总之,先把主要知识点掌握彻底掌握,慢一点是正常的,求快得不偿失,等把底层基础知识打牢,在学东西的时候就会快很多,以后完全可以多找项目练手,学习效率嗖嗖的,有时候慢就是快。