Java开发学习路线,看完这篇就够了

Java架构-大仙
• 阅读 1818

Java 开发,我们应该从哪里开始学?应该学习哪些东西?应该按照什么样的顺序来学?

Java 开发涉及到的领域非常多,对于开发者而言要掌握的东西也非常多,初入行的小伙伴甚至觉得这些要掌握的东西非常杂乱,其实不然!所有要学习的东西都是有内在关联的。

大仙今天就来和大家捋一捋 Java 学习路线图,一起来看看都有哪些东西需要掌握,以及要按照什么样的顺序来学习。 Java开发学习路线,看完这篇就够了

开发工具

Intellij IDEA:Java 开发最好的 IDE

Iterm2:macOS 最好用的终端!

Chrome:人生苦短,请用 Chrome

Postman:很好用的一个接口调试工具 Java开发学习路线,看完这篇就够了

整体学习规划

1.JavaSE 2.数据库 3.web基础 4.经典框架 5.分布式/微服务相关

JavaSE

1.Java基础语法 2.数组 3.面向对象 4.常见API 5.异常处理 6.集合与泛型 7.IO/NIO 8.多线程 9.反射/内省 10.Java网络编程 11.Java8/9/10/11各种新特性

JavaSE 这块其实没啥值得说的,基础的东西很多年都没有变化。

很多公司,用的 Java8/9/10,实际上还是写的 JDK1.5 的代码,但是这并不意味着我们就不用学习了。Java8/9/10/11 中的一些新特性还是有必要去学习下,特别是现在 WebFlux 逐渐被人们重视,一些从 Java8 就开始萌芽的理念与技术还是很有必要掌握一下的。

数据库

1.MySQL基础 2.SQL语言/各种查询函数/复杂查询 3.存储过程/触发器/事件 4.数据库备份与恢复 5.数据库用户管理与安全性 6.数据库事务 7.JDBC数据库连接池

作为一名 Java 工程师,数据库的重要性不言而喻,这算是基本功,我们不能老指望着 DBA,毕竟配有 DBA 的公司只是极少数。有句话叫做“SQL 写得好,下班下得早”。

WEB基础

1.HTML5与CSS3 2.JavaScript/jQuery 3.ECharts/EasyUl/Bootrap 4.Ajax/JSON/XML 5.Tomcat 6.Servlet/JSP 7.JSTL/EL 8.Cookie和Session 9.Filter和Listener 10.国际化 11.文件上传下载 12.WebSocket

有人会纠结 EasyUI 要不要学,这个有点古老。我的意见是,如果你是在校大学生,那就学,反正有时间;如果你已经工作了,现在查漏补缺,那可以结合公司的技术栈决定要不要学。

其实 EasyUI 也不能算是边缘化的东西,如果你前端不用 Vue、React 或者 Angular,EasyUI 绝对是一个无法忽视的存在,学习一下 EasyUI ,也能让我们理解整个前端的一个发展过程。

经典框架

1.Maven/Gradle 2.Sping

  • Spring5
  • SpringMVC
    • Spring Data Jpa
    • SpringBotch
    • Spring Session

3.MyBatis/MyBatis Plus 4.Freemarker/Thymeleaf 5.Linux 6.Git/Svn 7.Apache Shiro 8.Activiti 9.Quartz 10.Nginx 11.Redis 12ActiveMQ/RabbitNQ/Kafka 13EasyExcel/POI

这里涉及到的东西就比较多了,也是学起来最最漫长的一部分。

SSH 还要学吗

我们说的 SSH 一般是指 Spring、Struts2 以及 Hibernate。这三个里边,可以确认不用学习的 Struts2,如果你大学刚毕业,进入到一家公司,用 Struts2 做开发,你进去干了三年,Struts2 用的滚瓜烂熟,出来跳槽却发现没有任何优势,所以我不建议大家在 Struts2 上花时间。

至于 Hibernate ,这个我持保留态度。为什么这么说呢?

因为 Hibernate 和 Jpa 之间有着千丝万缕的联系,Spring Data Jpa 结合 Spring Boot,还是有很多公司在用,而如果你掌握了 Hibernate,在后面使用 Jpa 的时候上手很快,关于 Hibernate 和 Jpa 之间的关系,松哥之前专门写过文章介绍:干货|一文读懂 Spring Data Jpa!

消息中间件学哪个?

就我目前了解到的情况,JavaEE 项目中,RabbitMQ 和 RocketMQ 使用较多,大数据中 Kafka 用的较多,传统的满足 JMS 规范的 ActiveMQ 使用较少。因此小伙伴们可以结合这样一个实际情况选择合适的消息中间件学习顺序。

分布式微服务相关

1.SpringBoot 2.SpringCloud 3.zookeeper 4.Dubbo 5.单点登录 6.FastDFS 7.Docker 8.Elasticsearch 9.MySQL高级 10.MyCat 11.JUC 12.Netty

这一块,Spring Boot 和 Spring Cloud 是重点,这两个又分别涉及到诸多知识点:

Spring Boot:

1.基本原理 2.基本配置 3.整合视图层技术 4.整合 web开发 5.整合持久层技术 6.整合NoSQL 7.构建RESTful 8.整合各种缓存 9.整合Spring Security 10.整合webSocket 11.整合中间件 12.整合Swagger/邮件服务等 13.应用监控 14.打包部署

Spring Cloud:

1.Eureka/Consul 2.服务注册与消费 3.OpenFeign 4.Hystrix 5.Resillience4j 6.Zuul/Gateway 7.Spring Cloud Config 8.Spring Cloud Bus 9.Spring Cloud Stream 10.Spring Cloud Sleuth/Zipkin 11.Spring Cloud Admin 12.Spring Cloud Security 13.Spring Cloud OAuth2 14.Spring Allibaba :

  • Nacos
  • Sentinel
  • 学习 Spring Boot 的基础依然是 SSM,不建议跳过 SSM 直接学 Spring Boot*

学习资源

Java开发学习路线,看完这篇就够了

当你搞定了 SSM、搞定了 Redis、搞定了中间件,你再去学习 Spring Boot 就会发现他是如此简单!

至于 Spring Cloud,虽然 Netflix 公司的几个组件已经不打算继续开源了,但是对于大家而言,我觉得还是有必要去学习一下的,毕竟也不难,花不了多少时间,而且学习这些组件可以帮助大家快速建立一个 Spring Cloud 知识体系。

出了这两大块之外,剩下的就不用我多说了。MySQL 的进阶我是建议放在这个阶段学习的,像数据优化、主从搭建、读写分离等,我建议放在这个阶段。

上面的都学完之后,你已经可以站在一个比较高的角度来看待 JavaEE 开发了。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Eclipse插件开发_学习_00_资源帖
一、官方资料 1.eclipseapi(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fhelp.eclipse.org%2Fmars%2Findex.jsp%3Ftopic%3D%252Forg.eclipse.platform.doc.isv%252Fguide%2
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Java架构-大仙
Java架构-大仙
Lv1
楚水巴山江雨多,巴人能唱本乡歌。
文章
1
粉丝
1
获赞
0
热门文章

暂无数据