1.Java分类
Java按应用来分,可以分为J2ME(手机版),J2SE(标准版),J2EE(企业版)三部分。 
・J2ME:已经被安卓开发取代。 
・J2SE:Java的核心类,其中包括桌面应用,但一般不用Java开发桌面应用。 
・J2EE:已经被以Spring为代表的开源框架所取代,统称为JavaWeb。

Java程序的优势是Linux下的大规模集群环境下的代码编写,比如大型网站的后台支撑系统。 
所以,如果不考虑手机应用开发和桌面开发的话,我们应该按照J2SE+JavaWeb+分布式系统的路线来学习Java。 

2.学习路线简介
・J2SE学习阶段:
完成对Java的语法,编程思想,数据结构和算法的学习。
・JavaWeb学习阶段:
完成B/S架构的基础知识(Html,JavaScript,Ajax,Jsp,Servlet,SQL),产品特性(浏览器,服务器,数据库),框架特性(SSM),设计模式的学习。
・分布式系统学习阶段:
完成分布式系统的架构,微服务架构(SpringCloud),消息队列(kafka),缓存(redis),协调中心(zookeeper)等学习。
3.学习路线详细
・J2SE
[推荐书籍]
《Java语言程序设计》大众化的教科书方式,不深不浅,知识点基本上很全,适合初学者。可以按照书中目录了解知识点,不必深究具体概念。
《深入理解Java虚拟机》《深入Java虚拟机》精读(JVM指令和class文件结构部分不需要精度,了解一下即可)
《算法导论》算法证明部分可以不看,但课后题一定要自己做。
[环境]
DOS环境搭建知道为什么要设置path变量
Eclipse环境搭建会搭建环境即可,不要花费时间研究工具的使用
[基础]
程序流程图会画基本流程图,用例图,泳道图即可,不要花时间研究各种图
基本数据类型,表达式,函数
分支,循环
一维数组,二维数组
List,Map
对象,类
继承,封装,多态
抽象类,接口
异常处理
[图形界面]
Swing基本组件能画界面,处理点击事件即可,不要花费时间
事件分发和监听机制
自定义事件重点
[I/O]
文件读写会读写文件即可,其他随用随学
[网络编程]
TCP/IP协议重点,但不要死背,结合实际应用理解基本的请求格式,返回状态码含义
Thread,Runnable结合JMM模型和Concurren包里的东西看
线程池,线程同步结合JMM模型和Concurren包里的东西看
生产者消费者重点
Socket实际用起来
[数据库编程]
SQL(添删改查)重点
JDBC结合实际用起来,不要死背概念
[数据结构与算法]持久战,边学其他知识边在leetcode上刷题
大O表示法
数组,链表,队列,栈。
排序(冒泡排序,插入排序,快速排序,堆排序,桶排序等)
二叉树
Hash散列
动态规划
图的遍历,最短路径
[Java虚拟机]重点,从调优,排查问题,运行时内存分布等角度来学习
Java虚拟机结构
类加载机制
垃圾回收机制
[框架技术]不要死背概念,自己做一套框架
Java反射
动态代理(jdk与cglib)
・JavaWeb
[推荐书籍]
《HeadFirst设计模式》设计模式不是技术,但要了解每一种设计模式,不要把设计模式作为重点
《Java并发编程实战》精读,结合下面列出的《四火的文章》和《聊聊并发系列》来读
《构建高性能Web站点》精读
[推荐文章]
四火的文章
Java 多线程发展简史
java.util.concurrent 并发包诸类概览
聊聊并发系列
聊聊并发(一)深入分析Volatile的实现原理
聊聊并发(二)Java SE1.6中的Synchronized
聊聊并发(三)Java线程池的分析和使用
聊聊并发(四)深入分析ConcurrentHashMap
聊聊并发(五)原子操作的实现原理
聊聊并发(六)ConcurrentLinkedQueue的实现原理
聊聊并发(七)Java中的阻塞队列
聊聊并发(八)Fork/Join框架介绍
聊聊并发(九)Java中的CopyOnWrite容器
聊聊并发(十)生产者消费者模式
深入理解java内存模型系列
深入理解java内存模型(一)——基础
深入理解java内存模型(二)——重排序
深入理解java内存模型(三)——顺序一致性
深入理解java内存模型(四)——volatile
深入理解java内存模型(五)——锁
深入理解java内存模型(六)——final
深入理解java内存模型(七)——总结
[基础知识]
Html,Css,JavaScript,Ajax不要花时间在上面,会做网页即可,随用随学
Jsp,Servlet,Filter,XML
Cookie,Session重点
Http协议重点
Tomcat会用即可
连接池重点
[三层模型]
MVC理解概念即可,不要花时间在上面
Service
Dao
[常用框架]
Bootstrap不要花时间在上面,会做网页即可,随用随学
JQuery不要花时间在上面,会做网页即可,随用随学
SpringMVC了解常用配置即可,不要为了读源码而读源码
Spring了解常用配置即可,不要为了读源码而读源码
MyBatis了解常用配置即可,不要为了读源码而读源码
[版本管理]
SVN,Git会checkout,checkin即可,不要花时间在上面
[集成]
Maven会用即可,不要花时间在上面
SpringBoot了解常用配置即可,不要为了读源码而读源码
Linux基本操作(ssh,ftp,rpm,iptable,tar...)自己会在linux上安装各种服务
[并发]重点,结合前面介绍的文章和书来学习
java.util.concurrent包
Java并发简史
Java并发编程
Java内存模型
[性能]重点
SQL执行计划
缓存技术
消息队列
负载均衡技术
查看系统负荷
查看JVM负荷
[其他]会用即可
WebService
JavaMail
SQL(Join,子查询,Group by)
・分布式系统学习
[框架]动手实践,重点
SpringCloud
[常用组件]动手实践,重点
kafka
redis
zookeeper
[理论]动手实践,重点
CAP理论
分布式存储
分布式事务

Web后端 JAVA学习之路的更多相关文章

  1. 新篇章之我的java学习之路下

    昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...

  2. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  3. Java学习之路(转)

    Java学习之路(书籍推荐)   一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...

  4. java学习之路之javaSE基础2

    java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...

  5. JAVA学习之路与大家分享

    这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

  6. Java 学习之路 -- day00

    Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...

  7. (转)如何学习Java技术?谈Java学习之路

    51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...

  8. Java学习之路:不走弯路,就是捷径

    1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...

  9. 【分享】Java学习之路:不走弯路,就是捷径

    1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...

随机推荐

  1. 如何看MySql执行计划explain(或desc)

    简介 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化.EXPLAIN 命令用法十分简单, 在 S ...

  2. 新手篇丨Python任意网段Web端口信息探测工具

    你学习Python的目的是什么?是想写爬虫爬取数据(数据.图片等内容),还是想自写自动化的小工具,又或是作为一个新手小白单纯的欣赏这门语言呢? 今天i春秋分享的是一篇关于多线程工具的文章,工具使用效率 ...

  3. 『简单积性函数和dirichlet卷积』

    简单积性函数 在学习欧拉函数的时候,相信读者对积性函数的概念已经有了一定的了解.接下来,我们将相信介绍几种简单的积性函数,以备\(dirichlet\)卷积的运用. 定义 数论函数:在数论上,对于定义 ...

  4. 使用MongoDB在项目中实际运用

    一.MongoDB,一个数据库,我们怎么去使用它呢?我们首先了解一下什么是MongoDb 官网的介绍是:MongoDB是专为可扩展性,高性能和高可用性而设计的数据库.它可以从单服务器部署扩展到大型.复 ...

  5. 『OGG 01』Win7 配置 Oracle GoldenGate 踩坑指南

    安装 Oracle 安装 Oracle11g 32位[Oracle 32位的话,OGG 也必须是 32位,否则会有0xc000007b无法正常启动 错误] 安装目录为 D:\oracle\produc ...

  6. 你必须知道的 SmartSql !

    介绍 SmartSql = MyBatis + Cache(Memory | Redis) + R/W Splitting +Dynamic Repository + Diagnostics .... ...

  7. openlayers4 入门开发系列之地图模态层篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  8. PowerDesigner如何连接数据库--odbc连接数据库用法

    先下载msi   https://dev.mysql.com/downloads/connector/odbc/ 注:如果不成功,有可能msi版本问题,可以更换一下msi 前期准备 双击odbc的ms ...

  9. Centos7.3离线(rpm方式)安装mysql服务

    1.mysql官网下载安装包,官网地址:www.mysql.com [root@seiang software]# ll total 580020 -rw-r--r--. 1 root root 59 ...

  10. Hadoop2.0伪分布式平台环境搭建

    一.搭建环境的前提条件 环境:ubuntu-16.04 hadoop-2.6.0  jdk1.8.0_161.这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包自行下载即可. 因 ...