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理论
- 分布式存储
- 分布式事务
Web后端 JAVA学习之路的更多相关文章
- 新篇章之我的java学习之路下
昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...
- Java学习之路(转)
Java学习之路(书籍推荐) 一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...
- java学习之路之javaSE基础2
java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...
- JAVA学习之路与大家分享
这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...
- Java 学习之路 -- day00
Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...
- (转)如何学习Java技术?谈Java学习之路
51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...
- Java学习之路:不走弯路,就是捷径
1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...
- 【分享】Java学习之路:不走弯路,就是捷径
1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...
随机推荐
- 你真的了解ASP.NET Core 部署模型吗?
---------------------------- 以下内容针对 ASP.NET Core2.1,2.2出现IIS进程内寄宿 暂不展开讨论-------------------------- ...
- Mybatis之旅第五篇-动态SQL
一.引言 在之前的CRUD例子中,都是一些很简单的SQL,然而实际的业务开发中会有一些复杂的SQL,我们经常需要拼接SQL,拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号.Myba ...
- Java开发必须掌握的线上问题排查命令
作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题.这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查.由于在生产环境中,一般没办法 ...
- matplotlib读取csv文件
一,从本地加载csv文件 from matplotlib import pyplot as pltimport numpy as npimport csv#用来正常显示中文标签plt.rcParams ...
- 万马齐喑究可哀-中文编程的又一波"讨论"
刚申诉了自动折叠, 还是把回答转帖一下: 吴烜:假设中国人最先开发电脑和设计程序语言,那么各种程序语言会使用汉字吗? 这种有明显倾向性的问题怎么还有市场呢...不管谁先开发的电脑(就不论算盘之类是不是 ...
- cmd实现cab文件的压缩与解压
压缩(makecab): 1.单文件压缩 makecab ip2.txt ip2.txt.cab 2.多文件压缩 makecab /f c:\list.txt /d expresstype=mszip ...
- Windows Server 2012 R2 安装密钥(只适用安装,不支持激活)
标准版 = NB4WH-BBBYV-3MPPC-9RCMV-46XCB 数据中心版 = BH9T4-4N7CW-67J3M-64J36-WW98Y
- CTF丨从零开始搭建WEB Docker靶场
第十二届全国大学生信息安全竞赛即将开始,小伙伴们有报名参加的吗?大家在比赛前是否开始进行模拟演练了?今天,i春秋将与大家分享靶场搭建的相关内容,帮助大家更好的进行实操演练. 学习搭建Docker靶场之 ...
- Java集合-ArrayList源码解析-JDK1.8
◆ ArrayList简介 ◆ ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAcc ...
- Oracle AWR报告生成和性能分析
目录 一.AWE报告生成步骤 1.1 工具选择 1.2 自动创建快照 1.3 手工创建快照 1.4 生成AWR报告 二.AWR报告分析 2.1 AWR之DB Time 2.2 AWR之load_pro ...