Web后端 JAVA学习之路
-
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理论
-
分布式存储
-
分布式事务
欢迎关注本站公众号,获取更多信息