前言
今天浏览博客的时候,无意间看到很多人问:“新手该如何学习Java”,“怎样快速入门Java”之类的问题。现在想想,当初我在学习Java的时候也确实走了不少弯路,虽然当时也在各大网站搜索Java的学习路线,但是每个人说法不一,搞得我眼花缭乱…所以我决定结合我的经历与经验去写一篇文章,告诉那些零基础学习Java的同学们–怎样去系统的学习Java。废话不多说,我们直接上内容!(注:本文适合初学者阅读,大神可留言补充)
如何系统学习Java
首先学习Java可分为四个阶段:
第一阶段:Java核心技术
第二阶段:JavaWeb技术
第三阶段:Java高级框架、微服务与分布式
第四阶段:Java企业级开发
本文我会介绍Java学习的前三个阶段,对于Java企业级开发我暂时还没有涉及…但是只要你把前三个阶段学好,找一份好工作肯定不成问题。
对于初学者,我的建议还是无论学习什么技术,你都要去了解这项技术是什么,学习了这项技术可以干什么,带着问题去学习往往效果更好。其次基础一定要打好,像第一阶段Java核心技术一定要牢牢掌握,多动手练,每学完一个知识点就去写一个小demo测试一下,绝对有事半功倍的效果。
Java核心技术
注:各模块子内容仅仅是部分内容,我没有全部写上,因为你看到的每份资料的内容都会有不同的规划,总体知识点大同小异,只要按照你的教学视频按部就班来就好。
- Java开发入门
Java介绍
Java职业规划
… - Java编程基础
DOS常用命令
安装JDK、设置环境变量
Java注释
Java标识符、标识符命名规范
Java关键字
Java数据类型
Java条件分支
Java循环语句
Java方法
Java数组
… - 面向对象
面向对象的分析与设计
面向对象与面向过程的区别
类的定义
对象的定义
类中成员变量及方法的定义
构造方法的定义和调用
构造方法的重载
封装
继承
多态
… - 异常处理
Java异常体系
异常的概念及分类
异常的处理方式
自定义异常类
… - 文件与IO流
File类的使用
字节流、字符流、缓冲流
序列化和反序列化
… - Java集合
集合框架体系介绍
集合框架LIst
集合框架Map
源码深入探究
… - 多线程
线程与进程简介
线程生命周期
同步机制
线程调度
… - 网络编程
网络基础
TCP/IP,UDP
Socket
Http协议
… - 反射
- 泛型
- 枚举
- 注解
- JDBC
JBDC概述
JDBC入门使用
JDBC接口实现
… - XML与JSON
XML解析
JSON解析
…
Java Web技术
- HTML5
基本语法
常用标签
表单标签
… - CSS3
CSS基本语法
CSS选择器
CSS盒子模型
… - Javascript
JS变量、数据类型
JS运算符、选择、循环
函数、事件
字符串、正则表达式
… - MySQL
MySQL数据库安装、配置
SQL语句
… - Servlet
Servlet基本使用
Servlet生命周期
GET/POST请求
… - JSP
JSP语法
九大内置对象
EL表达式
JSTL常用标签
… - ajax+jQuery
Ajax语法与使用
jQuery基本语法与使用
…
Java高级框架、微服务与分布式
- Maven
Maven简介与环境搭建
Maven构建与自动化构建
pom.xml详细说明
Maven坐标、依赖、生命周期等
… - MyBatis
MyBatis基本使用
MyBatis增删改查
MyBatis Mapper映射器
动态SQL
一级缓存、二级缓存
… - Spring5
Spring 介绍与组成
Ioc介绍
Ioc原理
Ioc和DI的关系
SpringIoc详细使用
… - Docker
Docker容器命令介绍
Dockerfile常用指令
Docker部署常用软件
Docker Compose使用
Docker私有仓库使用
… - Vue
Vue语法
Vue事件
Axios网络通信
Vue表单输入
… - SpringBoot
SpringBoot核心功能
SpringBoot开发Web项目
… - Shiro
Shiro架构
Shiro概述
Shiro认证
… - SpringCloud
微服务与SpringCloud
SpringCloud与Dubbo对比
SpringCloud之Eureka
SpringCloud之Ribbon
SpringCloud之Feign
… - Redis
Redis特点与优势以及使用场景
Redis主从、哨兵、集群模式安装配置
Redis持久化策略、淘汰策略
Redis五大数据类型和基本操作命令
…
结语
第一阶段Java核心技术,网上都会有配套的免费课程,一搜一大堆,而且课程整洁度非常高,建议一定找一份好的学习资料。将每个模块的内容深入学习,这样将来学第二阶段与第三阶段就会轻松好多。正所谓,只要根基打的好,盖再高的楼都不会塌,学习也是这个道理。
第二阶段:Java Web技术,核心就是JSP、Servlet、MySQL。重点掌握Servlet与MySQL,JSP大致掌握就好,不用深入研究,因为JSP已经是过时的技术。那有人肯定会问,过时的技术为什么要去学呢?俗话说,一口吃不成胖子。可以这么说JSP是为你做Web项目打的一个基础,起过渡作用。还有人会说,Servlet也是过时技术!确实现在已经没有人使用Servlet去开发项目了,但是它是一个很底层的东西,学好Servlet对你将来使用框架开发项目有很大的帮助,例如Servlet中的过滤器、监听器在Spring项目中就有使用。当然,作为一个后端工程师,我不太建议花很多的时间去学习HTML和CSS,你只要明白每个标签是干嘛的,怎么用就好,需要用到的时候百度查一下就行,等到你在公司开发项目,前端页面都会有专业的美工人员去完成,后端工程师只需要完成后端的业务逻辑,将接口返回给前端工程师即可。当然,想做全栈工程师的同学可以深入学习一下。最重要的是,第二阶段学完之后一定做个项目,把你这个阶段学到的知识全部整合进去,在MySQL上多下点功夫。
第三阶段:Java高级框架、微服务与分布式。学习这个阶段的时候,一定要循序渐进,先学Maven、MyBatis、Spring5…当你将每个框架都学完之后,一定要看一些整合视频,例如:SpringBoot+Spring+MyBatis+Vue整合、SpringBoot+Redis整合、SpringBoot+Shiro整合、SpringCloud+Docker整合。如果单学某个框架而不把他们整合起来,你会发现学完都不会用。还有就是要学习当前主流框架,那些已经淘汰就不建议学习了,不仅将来用不到而且还浪费时间。互联网行业本身就是一个跟新换代比较快的行业,技术更迭更是快,今年你学会的技术,可能过几年就淘汰了,所以要学就学最新的技术。目前微服务这个方向还是比较流行的,建议同学还是多往这个方向学习。学完所有的框架,建议做一个前后端分离的项目,尽可能多整合一些知识点,再试着将它部署上线,这样你的第三阶段就大功告成了。
虽然看着有些复杂,学的东西也多,但是只要你用心去学,花足够的时间去研究,相信不久的将来你就能成为一名合格的Java工程师。以上内容都是我的一些小建议,希望对大家有所帮助。
注:学习时下载的软件一定要装最新版,因为技术更新快,部分老版本软件可能会发生不兼容的问题,做项目就会发生很多问题(经验所得)