新手学JAVA都要学哪些知识啊

Python018

新手学JAVA都要学哪些知识啊,第1张

这样的问题,我已经回答了很多次,现在很多新手,特别是刚刚进入学生的学生,不知道该从哪里入手,我整理了一些java的知识点,一共分为一个阶段,273个技能点,第一阶段、第二阶段、第三阶段、第四阶段是必须要掌握的,第五阶段和第六阶段就是高薪、高职的保障,就说说想高薪必须得把后面两个阶段的给掌握了,

第一阶段:java基本功修炼

1. 认识计算机硬件

2. 计算机组成原理

3. 计算机软件知识

4. 计算机网络知识

5. 常用网络应用操作

6. 认识计算机病毒

7. 逻辑训练

8. 初识Java

9. 变量和数据类型

10. 选择结构

11. 循环结构for

12. 循环结构do-while

13. 循环结构while

14. 多重循环及程序调试

15. 循环进阶

16. 一维数组及经典应用

17. 二维数组

18. 认识类与对象

19. 方法及方法重载

20. 封装与继承

21. 方法重写与多态

22. 项目实战-汽车租赁系统

23. 抽象类和接口

24. 异常

25. 项目实战-QuickHit

26. Java 中的集合类型

27. List 集合

28. Set 集合

29. HashMap 集合

30. Iterator

31. Collections 算法类及常用方法

32. enum

33. 包装类及装箱拆箱

34. String、StringBuffer 类常用方法操作字符串

35. Date、Calendar

36. Math 类常用方法

37. IO/NIO

38. 字节输入流(InputStream、FileInputStream、BufferedInputStream)

39. 字节输出流(OutputStream、FileOutputStream、BufferedOutputStream)

40. 字符输入流(Reader、InputStreamReader、FileReader BufferedReader)

41. 字节输出流(Writer、OutputStreamWriter、FileWriter、BufferedWriter)

42. 文件复制

43. Serialize、Deserialize

44. 职场晋升力:四象限时间管理与精力管理

45. 多线程(Thread、Runnable)

46. Thread LifeCycle

47. 线程的调度

48. 线程的同步和死锁

49. Thread Pool

50. 职场晋升力:团队合作

51. Socket(TCP、UDP)

52. XML 概念、优势、规范

53. XML 中特殊字符的处理

54. 使用DOM 读取、添加、删除、解析 XML 数据

第二阶段:javaweb开发

55. 搭建和配置MySQL 数据库

56. 数据库增、删、查、改语句

57. 事务

58. 视图

59. 数据库备份与恢复

60. 数据库用户管理

61. 数据库设计

62. 项目实战-银行ATM 存取款机系统

63. 走进 HTML 和CSS

64. 列表表格及表单美化

65. CSS 高级操作

66. Bootstrap

67. CSS 组件

68. JavaScript 面向对象

69. JavaScript 判断、循环

70. JavaScript 闭包

71. JavaScript 语法

72. Bootstrap 综合案例

73. HTML5、CSS3

74. jQuery 基础

75. jQuery 基本操作

76. jQuery 事件与特效

77. jQuery Ajax

78. jQuery 插件

79. 搭建Web 环境初识JSP

80. JSP 九大内置对象

81. JSP 实现数据传递和保存

82. JDBC

83. 单例模式、工厂模式

84. MVC、三层模式

85. Commons-fileupload、CKEditor

86. 分页查询

87. EL 与 JSTL

88. Servlet 与Filter

89. Listener 与MVC

90. Ajax 与 jQuery

91. jQuery 的Ajax 交互扩展

92. 项目实战—使用Ajax 技术改进新闻发布系统

93. 反射

94. Linux 系统的安装

95. 在Linux 中管理目录和文件

96. 在Linux 中管理用户和权限

97. 在Linux 服务器环境下安装软件和部署项目

98. 职场晋升力:职场沟通

第三阶段: 企业级框架开发

99. MyBatis 环境搭建

100. SQL 映射文件

101. 动态SQL

102. MyBatis 框架原理

103. Spring IOC

104. 构造注入、依赖注入、注解

105. Spring 整合MyBatis(SqlSessionTemplate、MapperFactoryBean、事务

处理)

106. Spring 数据源(属性文件、JNDI)、Bean 作用域

107. Spring 框架的运行原理

108. SpringMVC 体系概念

109. SpringMVC 之数据绑定、数据效验、

110. SpringMVC 之视图及视图解析

111. SpringMVC 之文件上传、本地化解析

112. SpringMVC 之静态资源处理、请求拦截器、异常处理

113. Oracle 数据库环境搭建、安装

114. Oracle 数据库 SQL、分页、备份、还原

115. Hibernate 概念、依赖

116. HQL 查询语言

117. Hibernate 中配置关联映射

118. HQL 连接查询与 Hibernate 注解

119. Struts 2 概念、依赖

120. Struts 2 配置

121. OGNL 表达式

122. Struts 2 拦截器

123. SSH 框架整合

124. 使用Maven 构建项目

125. 使用Struts 2 实现Ajax

126. Jsoup 网络爬虫

127. 多线程网络爬虫

128. 反爬及反反爬策略

129. 通用爬虫设计

130. Echart 图表分析

131. IKAnalyzer 分词

132. 企业框架项目实战-代理商管理系统

133. 企业框架项目实战-SL 会员商城

134. 企业框架项目实战-会员管理系统

135.企业框架项目实战-互联网招聘信息采集分析平台

第四阶段: 前后端分离开发

136. GitHub

137. Git 基础(checkout、pull、commit、push、merge 等)

138. Git 进阶(多分支协作)

139. GitLab

140. IDEA 的使用

141. Maven 介绍(概念、仓库、构建、命令)

142. 使用Maven 构建WEB 项目

143. 使用Maven 构建多模块项目

144. 使用Maven 搭建私服仓库

145. Scrum 框架介绍(三个角色、三个工件、四个会议)

146. Scrum Team 组建团队

147. 产品需求和用户故事

148. 每日立会

149. 使用敏捷-Scrum 方式开发管理实战

150. 前后端分离、分布式集群架构、垂直架构

151. SSM(SpringMVC+Spring+MyBatis)整合实战

152. Git、Maven 私服Nexus

153. 第三方接入技术(微信、阿里)

154. MySQL 电商实战

155. Redis(缓存服务)

156. 搜索引擎-Solr

157. 集成API Doc 工具-Swagger

158. 图片自动化处理:Tengine+LUA+GraphicsMagic

159. 手机、邮箱注册

160. 单点登录 Token

161. OAuth2.0 认证

162. Jsoup 网络爬虫(多线程爬虫/代理 IP 爬虫)

163. ExecutorService 线程池

164. IK 中文分词

165. Postman

166. ReactJS

167. webpack

168. 职场晋升力:简历撰写

169. 程序猿面试宝典之项目面试

170.大型互联网旅游电商项目实战-爱旅行

第五阶段: 分布式微服架构开发

171. Spring Boot 环境搭建

172. Spring Boot 常用技能

173. Spring Boot 整合Redis

174. Spring Boot 整合Mybatis

175. 微服务架构及架构设计

176. 消息队列

ActiveMQ\RabbitMQ

177. 分布式事务

178. 分布式锁 Redis-setnx

179. Zookeeper 注册中心

180. 基于 ActiveMQ 实现高并发

181. Docker 环境搭建

182. Docker 镜像加速

183. Docker 容器管理

184. Docker 镜像管理

185. Docker 容器文件备份

186. Dockerfile

187. Docker 私服仓库

188. 真实互联网高并发电商项目实战-双十一抢购

189. 可视化监控 Portainer

190. Docker Compose 容器编排

191. Docker Compose 扩容、缩容

192. Docker Swarm 集群编排

193. Jenkins 安装、插件配置

194. Jenkins 配置普通任务

195. Jenkins 配置管道任务

196. Jenkins 自动发布服务

197. Spring Cloud Eureka

198. Spring Cloud Feign

199. Spring Cloud Ribbon

200. Spring Cloud Zuul

201. Spring Cloud Config

202. Spring Cloud Hystrix

203. Spring Cloud Sleuth

204. Spring Boot Admin

205.Eureka 注册原理探秘

206. Spring Cloud 大坑解读

207. Zipkin

208. Zipkin 整合RabbitMQ

209. Zipkin 整合MySQL

210. ELK 日志收集

211.Kafka

212. Elasticsearch 映射管理

213. Elasticsearch 查询/复合查询

214. Elasticsearch 集群/集群规划

215. Elasticsearch 聚合

216. Elasticsearch 集群监控

217. Elasticsearch 插件

(Head/BigDesk)

218. Mycat 读写分离

219. Mycat 一主多从

220. Mycat 多主多从

221. Mycat 数据分片

222. Redis

223. Redis-Redlock

224. Elasticsearch 环境搭建

225. Elasticsearch 客户端

226. Elasticsearch 索引管理

227. Elasticsearch 文档管理

228. Mycat 集群

229. Jmeter 并发测试

230. Jmeter 生成测试报告

231. 微信登录

232. 微信支付

233. 支付宝支付

234. 百度地图

235. Sonar 本地检测

236. Sonar +Jenkins 线上检测

237. CI/CD

238. Spring Boot 改造爱旅行项目实战

239. 大型互联网票务类电商项目实战-大觅网

240. ES6 概念(les、const)

241. ES6 对象和数组

242. ES6 函数扩展

243. VUE 环境搭建

244. VUE.JS 指令

245.VUE 交互

246. VUE 实例生命周期

247. VUE 组件

248. VUE 项目环境配置及单文件组件

249.VUE 路由

第六阶段:cc服务

250. Spring Cloud Gateway

251. Consul

252. Nacos

253. Eureka、Consu、lNacos、Zookeeper 对比分析

254. Prometheus + Grafana

255. ES 分布式存储原理

256. NoSQL 数据库解决方案(Redis、MongoDB)

257. OAuth2.0 认证( authorization code 模式)

258. OAuth2.0 认证( implicit 模式)

259. OAuth2.0 认证( resource owner password credentials 模式)

260. OAuth2.0 认证( client credentials 模式)

261. NAS/FastDFS 分布式文件存储

262. Python 基础

263. Python 爬虫

264. 大数据及 Hadoop 概述

265. 分布式文件系统 HDFS 

266. 分布式计算框架MapReduce

267. 分布式列式数据库 HBase

268. Hadoop 综合应用

269. 面试大局观

270. 职业规划  

271. 项目面试

272. 具体业务场景化解决方案

273. 更多技术专题持续增加中

一、java基础

学习任何一门编程语言,首先要学习的是基础语法,开启Java学习的第一步,当然就是深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程,这些我们称之为JavaSE基础。当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面端软件。

JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。

在Java基础板块中有6个子模块的学习:

基础语法,可帮助你建立基本的编程逻辑思维;

面向对象,以对象方式去编写优美的Java程序;

集合,后期开发中存储数据必备技术;

IO,对磁盘文件进行读取和写入基础操作;

多线程与并发,提高程序效率;

异常,编写代码逻辑更加健全;

网络编程,应用服务器学习基础,完成数据的远程传输。

学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。

技术树

二、数据库

互联网最具价值的是数据,任何编程语言都需要解决数据存储问题,而数据存储的关键技术是数据库。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Java程序和数据库通信的最常见技术是JDBC,Druid和C3P0。学习这些数据库技术后,可以掌握数据库运维技术、复杂业务表结构设计规范、工作中常见的SQL操作、软件数据存储等。

数据库不仅仅是Java开发工程师的必学课程,也是其他语言都需要掌握的技能。用于对交互过程中客户的数据进行存储。

该板块包括关系型数据库和非关系型数据库。

例如:MySQL、oracle、redis、MongoDB等。数据库学习完毕后,可以将数据存储到数据库中,也可以通过SQL语句从数据库中查询数据,结合Java项目可以实现动态站点的数据的保存。

技术树

三、前端技术

浏览器展示给用户看到的网页就是前端,前端有三大基础技术分别为Html、CSS、JavaScript,这些学完后,为了做出更好、更炫的交互式体验效果,我们还需要学习jQuery、ElementUI、Vue、Ajax,以及打包工具webpack。学完这些技术后,我们可以开发微信小程序、响应式网站、移动端网站、开发类似京东一样的B2B2C商城、管理后台等。

Javaweb阶段包括前端、数据库和动态网页。Javaweb是互联网项目的入门课程,是学习后面高进阶课程的基础。

首先,我们先看一下前端板块。该板块主要包括如下几个模块:

HTML5,网页制作标记语言;

CSS,对HTML制作网页进行美化;

JavaScript,嵌入在页面中的脚本语言,具备逻辑性;

Vue,前端框架,简化了与服务器端交互的操作,用户良好的交互体验是必不可少的。

学习前端技术后,可以完成类似京东、淘宝的前端工程的编写。

技术树

四、动态网页

掌握前端技术只能做静态网站,但它页面数据一成不变,而动态网站可以根据数据库中变更的数据实现不同的内容展示,应用更广泛,因此程序员必须要学会做动态网站。使用Java做动态网站,我们需要学习Servlet、Filter、Session、Cookie、JSP、EL表达式、JSTL等做动态网站的完整知识体系,学完可研发出OA系统、内容网站、BBS等。

动态网页是中级程序员服务器端编程的基础,是高级框架学习的必备课程,后期学习的框架、服务底层都是基于动态网页技术之上的。

该板块包括Javaweb核心技术、包括Servlet、Request、Response、Cookie和Session等,通过这些技术的学习可以完成动态站点开发,可更好的完成服务器端与客户的交互,让页面的数据“动”起来,做出小型的应用系统。

技术树

五、编程强化

前面学了JavaSE基础,但它在企业级应用中程序处理业务的效率并不高、扩展差,编程强化是对JavaSE基础的加强,将针对性的提高程序处理业务的执行效率、增强程序扩展性。编程强化将加强多线程高级学习,涉及线程内存、线程通信等技术。学完以后,能增加一个中级程序员的知识储备,无论在面试过程中还是将来技术的深入打一个良好的基础。

编程强化是对解决实际问题方面做一个深入的了解和应用,是对JavaSE基础的加强,对后期自动以框架和对一些服务框架的底层理解做支撑。

编程强化板块主要包括如下几个模块:多线程高级、涉及线程内存、线程通信等;JVM优化,对JVM底层进行调优来提高项目执行效率;NIO,同步非阻塞IO来提高效率。

学习该阶段,可以对原有项目进行优化从而使程序更快更稳定。

技术树

六、软件项目管理

公司开发都是团队协同开发,为更好的掌握实际开发,我们还需要学习常用的项目管理平台、版本控制器、项目构建工具以及自动化部署工具。项目开发一定是有版本升级的,管理好项目进度和版本需要Git、Maven、Sonar这样的系统平台。学习完软件项目管理后,将掌握整个项目实际开发过程以及整个项目开发过程中所使用协同开发工具。

JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。

在Java基础板块中有6个子模块的学习:基础语法,可帮助你建立基本的编程逻辑思维;面向对象,以对象方式去编写优美的Java程序;集合,后期开发中存储数据必备技术;IO,对磁盘文件进行读取和写入基础操作;多线程与并发,提高程序效率;异常,编写代码逻辑更加健全;网络编程,应用服务器学习基础,完成数据的远程传输。

学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。

技术树

七、热门技术框架

Javaweb掌握后,已经具备企业中实际项目的开发能力了,但它开发效率低,代码量大,开发周期长、开发成本高。企业中广泛使用一些优秀的框架技术来解决上述问题,因此我们还需要学习框架技术,项目开发中主流的Java框架技术有SpringMVC、Spring、MyBatis、MyBatis Plus、SpringData等。这些框架技术都是一个优秀程序员所必备的技能。

使用Javaweb进行企业级开发是完全可以的,但是开发效率比较低,所以对常用的逻辑操作进行封装就形成了框架,因此框架是企业开发的入门技能。

热门框架板块主流框架有如下几个:Spring框架,占据统治地位,其生态系统涉及各个方面解决方案;MyBatis框架,使用ORM思想对数据库进行操作。

该板块学习后,就可以进行真实企业级项目开发了,做出的项目也会更加符合企业要求。

技术树

八、分布式架构

需要用到分布式微服务的技术。学习完该阶段课程,可以具备大型SOA架构和微服务架构能力,能掌握大型微服务项目必备技术和实际经验。企业发展过程中,业务量和用户量逐渐增加,为了保证系统的可用性,系统越做越复杂,研发人员增多,大家很难共同维护一个复杂的系统,往往修改部分内容,导致牵一发而动全身,所以我们需要升级系统架构,

随着互联网的发展,业务的复杂性和用户的体验性都需要提高,所以分布式架构出现了。该板块主要讲解的是分布式架构的相关解决方案。

主要包括如下模块:Dubbo,高性能的 RPC 服务发布和调用框架;SpringBoot,简化Spring应用的初始搭建以及开发过程;Spring Cloud,一系列框架的有序集合,如服务发现注册、配置中心、负载均衡、断路器、数据监控等。

该板块的学习,可以具备大型互联网项目开发的必备技术和实际经验,为进入BATJ打下基础

技术树

九、服务器中间件

在分布式系统架构中,服务与服务之间的异步通信,是非常常见的需求之一,消息中间件的诞生正是为了解决这类问题。目前市面上的主流消息中间件有RabbitMQ、RocketMQ、Kafka,我们将学习这3个消息中间件,实现分布式项目中的异步通信。学习完这些后,可以实现分布式项目的异步通信、分布式应用日志收集、分布式事务等。

中间件板块是大型互联网项目中必备的。服务中间件可以帮助各子模块间实现互相访问,消息共享或统一访问等功能。其包括远程服务框架中间件,例如阿里(Apache)的RPC框架Dubbo等;消息队列中间件,例如:阿里巴巴开源分布式中间件RocketMQ、高吞吐量消息发布和流处理服务Kafka等。

学习服务中间件是中级JavaEE工程师必要技术,也是JavaEE架构师必须精通的技术。

技术树

十、服务器技术

程序开发完成后,我们把它们打包部署到服务器中运行,所以我们需要学习常见的服务器技术,常见的服务器有Linux和Window server,Linux性能高,是当前主流。我们写好的项目需要用一个软件运行起来,这个软件叫web容器,我们需要在服务器上安装web容器来发布项目,当前主流的web容器有tomcat、jetty、nginx、undertow。

不管是使用原生Javaweb进行开发,还是使用框架进行开发,项目最终需要对外发布才能供全世界的人访问到,而服务器板块就可以解决这个问题,所以服务器是项目发布的必要技术。该板块包括虚拟化和web应用服务器的学习,主要包括如下几个模块:Vmware,虚拟机软件;Linux,专门用于服务器的系统;Nginx,集群部署时反向代理服务器;Tomcat,项目发布时主要使用的服务器。

该板块学习后,我们就可以把开发好的项目发布到服务器中,然后供你的小伙伴远程访问了,超酷!

技术树

十一、容器技术

具备了服务器操作系统及web容器,我们就可以部署单机的站点,在分布式系统中,几十上百的服务,如果使用单机这种部署方式,会投入很高的人力,同时出错的几率也大。所以服务器虚拟化技术Docker也称为如今的必备技术了,Docker可以帮助运维人员实行快速部署,批量维护.使用Kubernetes实现自动化部署、大规模可伸缩、应用容器管理。

容器化技术是近两年超级火的一个专题,通过容器化技术可以对环境进行打包,方便移植,大大提高了开发效率。该板块包括容器化技术Docker和其平台管理引擎Kubernetes,其中,Docker 是一个开源的应用容器引擎,可以打包应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。而Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。通过该板块的学习,你可以通过上述技术快速搭建环境,节省开发时间,提高开发效率。

技术树

十二、业务解决方案

企业开发中会遇到一些通用的业务场景,诸如:搜索引擎、缓存、定时任务、工作流、报表导出、日志管理、系统监控等,那么这些通用的解决方案也有现成优秀的免费开源中间件,可供使用。诸如:ElasticSearch、Lucene、Solr、redis、MongoDB、slf4J、ECharts、Quartz、POI等。业务解决方案课程的业务方案和技术难点,解决了企业开发中90%以上的痛点和难点。

虽然我们已经具备了基础技术和高阶技术,但是要想与企业开发相接轨,还需要对实际项目的业务解决方案进行探究。而此版块就是在实际业务场景中的真实解决方案集合,常用的业务解决方案有如下:搜索业务场景解决方案、日志收集与分析场景解决方案、工作流引擎场景解决方案、任务调度场景解决方案、地图开发平台场景解决方案、支付开放平台场景解决方案、图表可视化场景解决方案。通过分析实际业务来学习这个解决方案技术集,完全可以达到中级甚至高级工程师水平。

技术树

java学习路线大陆传送门

一、提升对java技术的思考

很多人口里嚷着要提升java技术,行动也有,但就是不奏效,是怎么回事呢?因为行动前没有好好的思考,比如老是盯着已经掌握熟练的java技术练习,你为什么不考虑多练练你不熟习的java技术呢?那么应该思考些什么关于java技术的问题呢?

1、这个技术能解决什么问题(why)

2、比较适合在哪些场景应用(where+when)

3、这个技术跟我已经掌握的哪个知识或技能类似,有什么差别、有什么特点、有什么优点和缺点(what)

4、了解前面的问题后,你在开始考虑提升java技术那么效果会比较好。

二、善于模仿,把他人的变成你的

你的代码刚开始是怎么学会的呢?不外乎模仿,但是模仿也有诀窍,有的人模仿的快,有的人模仿的慢。时常强调,多去看看其他人的代码是怎么编写的,你可以从其他人的代码中模仿出很多的东西,甚至你可以尝试去修改其他人的代码,让它跟你的想法更加接近,看看你下次是不是可以这样做,看看学习效率有没有提高或者变得简单,长此以往,你的java技术一定会有质的提升。