想了解2018年Java程序员后端学习路线?你只需要这一张图!

前言

学习路线图往往是学习一样技术的入门指南。网上搜到的Java学习路线图也是一抓一大把。

今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点。所谓不求最好,但求最全,学习Java后端的同学完全可以参考这张图进行学习路线安排。

当然,有一些知识点是可选的,并不是说上面有的你都要会啦。我在复习秋招的过程中就是基于此图进行复习的,感觉效果还是不错的。

闲言少叙,我们还是看看这张图上都包含哪些有价值的信息吧。再次说明,本文只对路线图做一个简单地解读,仅供参考。大家可以根据自身情况来指定合理的学习计划,相信也会大有裨益。

由于图片比较大,如果觉得看不清楚,可以点击原文链接查看原图。

在这里还是要推荐下我自己建的Java学习裙:574加上253再加上075,群里都是学Java开发的,如果你正在学习Java ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Java软件开发相关的),包括我自己整理的一份2018最新的Java进阶资料和高级开发教程,欢迎进阶中和进想深入java的小伙伴

1 计算机基础

这部分内容是计算机相关专业同学的课程,但是非科班的小伙伴(譬如在下)就需要花时间恶补了。特别是计算机网络,操作系统,数据结构这三门课程。

至于编译原理,个人大概懂一点就行了,我也只看过简单的概念和状态机相关的内容,并不是特别重要。

2 Java编程

这里的Java编程部分包含了很多内容。我们可以分别看看,大概归纳一下就是这几个部分。

Java基础

这里的Java基础包括基本语法,集合类框架,以及一些高级特性,比如反射,注解等等。

Java基础的知识点非常多,所以要真正搞懂也没有那么简单,另外,随着时间推移,一些新特性也需要得到我们的重视,比如时下流行的JDK8。

设计模式

我一直觉得设计模式可以和Java基础一块学,所以我也把它放在这里。当然,一些真正使用到设计模式的地方,譬如JDK的集合类,IO流等等,也需要你足够重视。

Java Web技术

Java Web技术包括J2EE,以及web框架,乃至一系列常用的组件。

1 J2EE主要包括的就是servlet,jsp这些比较复古的web开发组件了。虽然现在直接用它们的情况比较少,但是我们还是需要花一些时间去掌握它们的。

2 web框架常用的就是Spring了,相应的,hibernate和mybatis也需要了解一下。

3 同时,JavaWeb开发时的常用类库,比如jnuit单元测试,log4j日志工具,以及构建工具maven,都属于我们要掌握的范畴。

4 最后,要注意的是,Web相关的一些基本知识,比如HTTP协议,网络安全基础,也是我们要考虑的部分。

Java并发技术

Java的并发技术泛指Java的多线程技术,以及JUC包里的并发类,比如线程池,并发工具类,阻塞队列等等。

Java并发技术完全可以独立出来学习,是Java进阶知识的一大重点。

Java网络编程和服务器

这一块内容是Java中比较复杂但也很重要的一块内容。比如BIO,NIO,AIO的一些使用和原理,以及tomcat这类web服务器,甚至是netty这种网络编程框架,都是可以去了解和学习的内容。

Jvm基础与调优

JVM是提供Java程序运行的一个进程,学习JVM知识,也是我们的必经之路。除了看懂《深入理解jvm虚拟机》以外,我们还要学习的内容就是JVM调优,使用合适的工具诊断问题,最后解决问题。

这部分内容在面试中呈现的不仅仅是GC,内存分区,以及类加载器,也包括了我所说的JVM调优问题。

3 Linux

作为后台同学,常年被面试官问linux相关的问题,所以觉得学好linux还是蛮重要的,除了基本命令以外,最好还能了解一些shell脚本,甚至是内核相关的知识,这方面是我的一个弱项。

4 数据相关

在这个路线图里,数据部分囊括了非常多的数据源,我们可以来看看都有哪些是我们需要掌握的。

关系数据库Mysql

这个不必多说,人手都要会,不管是基础的crud,索引,抑或是进阶的存储引擎,分布式方案等,我们都需要对应掌握。

缓存

如Redis,memcache一类的缓存,作为后端开发者的我们也需要对应掌握,当然,它们的高级特性,以及分布式方案,也是必备的知识点。

搜索引擎

基于Lucene的solr,elasticsearch这类搜索引擎,本质上也是数据源,但是并不是后端必备的内容,不过学一学也没有坏处啦。

大数据

海量数据处理的场景越来越多,大数据技术如hadoop,storm等也越来越火,但是大数据应用一般会由专业的大数据工程师来做,所以我们学一些基本内容也就足够了。

5 算法和数据结构

算法一直是校招同学面前的一座大山,作为后端同学来讲,除了基本的数据结构算法以外,也要会一些高级的算法,譬如dp,搜索,贪心等等。

另外,通过LeetCode等题库来刷题的方式来巩固算法也是公认的好办法了。

6 分布式

最后一个部分,也是内容最多,覆盖面最广泛的部分了。分布式相关的技术实在太多了,我们这里也会做一下简单的归纳。

web架构

先了解web架构的发展会对分布式的学习有更好的理解,毕竟架构的发展也对应着分布式技术的发展。

分布式理论

这部分内容包括分布式的发展演化,base理论和cap理论等等,学习分布式技术之前,最好能对这部分概念有一定了解。

一致性问题

强一致性的解决方案:事务和锁,弱一致性的方案:消息队列。

分布式session

一个常见的问题,也有多种解决方案

分布式缓存

和上面说的缓存一样,只不过这里侧重缓存的分布式方案

分布式数据库

这里指的数据库的分布式方案,也包括hbase这种分布式数据库。

负载均衡

负载均衡也是一个值得探讨的话题,一般我们讨论的是七层和四层负载均衡。

消息队列

消息队列是一个比较复杂的分布式组件,我们可以了解常用消息队列比如amq,kafka等的实现。

服务化

服务化的核心包括rpc,服务注册中心等等。分布式服务相关技术也是后端同学必须掌握的内容。

虚拟化

虚拟化同样不是后端同学必须掌握的内容,只不过现在越来越多的服务部署方式使用的是docker和云服务的方式。所以了解一下也没有什么不好的。

知识体系整理好(学习视频等资料),有需要的可以关注威信工宗号:程序员大牛,+转发后,即可获取!重要的事情说三遍,转发、转发、转发后再发私信,才可以拿到!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,恭喜你决定学习 Java 编程!在开始学习之前,我建议你先了解一些基础知识,包括计算机基础知识、编程基础知识以及 Java 的基础概念。 在学习过程中,你可以按照以下步骤来学习 Java 编程: 1. 了解 Java 的基础概念,包括 Java 的历史、安装和运行环境、Java 的基本语法和数据类型等。 2. 学习 Java 编程的基本操作,包括如何编写、编译和运行 Java 程序、如何使用变量、常量和运算符、如何使用循环和分支结构等。 3. 学习 Java 面向对象编程的基本概念和技术,包括类、对象、封装、继承、多态等。 4. 学习 Java 的常用类库和框架,包括 Java 核心类库、Java 文件输入输出、Java 网络编程、Java 数据库编程、Java GUI 编程等。 5. 学习 Java 应用程序的开发、测试和部署流程,包括如何使用版本控制工具、如何使用调试工具、如何使用测试工具、如何打包和发布 Java 应用程序等。 学习 Java 编程时,可以通过阅读 ### 回答2: 作为入门级程序员学习Java是一个不错的选择。以下是一个可行的Java学习开发路线: 1. 学习基本编程概念:首先,你需要掌握编程的基本概念,如变量、数据类型、条件语句和循环结构等。了解这些概念可以帮助你构建基本的程序逻辑。 2. 学习Java语言基础:接下来,你需要学习Java语言的基础知识,包括语法、关键字、运算符和面向对象编程等。你可以通过参加在线课程、阅读相关书籍或参考Java官方文档来学习。 3. 学习Java核心类库:Java提供了丰富的核心类库,包括输入输出、集合框架、多线程和异常处理等。理解这些类库的使用方法对于开发Java应用程序非常重要。 4. 学习数据库开发学习使用Java与数据库进行交互,可以使用JDBC(Java Database Connectivity)技术实现。了解如何连接数据库、执行SQL语句和处理查询结果等内容。 5. 学习Web开发:掌握JavaWeb开发是非常有用的。学习使用Servlet和JSP进行动态Web页面开发了解MVC(模型-视-控制器)架构和常用的Web开发框架,如Spring和Hibernate。 6. 学习开发工具:选择一个适合的集成开发环境(IDE),如Eclipse或IntelliJ IDEA,以提高开发效率。学习使用版本控制工具,如Git,可以帮助你管理代码和与团队进行协作。 7. 实战项目:尝试通过参与实际项目来应用你所学到的知识。可以参与开源项目或者自己创建一个小项目,以锻炼自己的编码能力和解决问题的能力。 总结来说,入门级程序员学习Java,你需要掌握基本的编程概念和Java语言基础,了解核心类库和数据库交互,掌握Web开发以及使用开发工具和版本控制工具。通过不断实践和参与项目,你可以提升自己的编程能力和经验。 ### 回答3: 作为一个入门级程序员,建议你按照以下路线学习开发Java技术。 1. 学习Java基础知识:首先学习Java的语法、控制结构、数据类型、面向对象编程等基础知识。可以通过阅读Java教程、参加在线课程或找一本入门级的Java教材来学习。 2. 编写简单的命令行程序:使用学到的知识,编写一些简单的命令行程序,如计算器、学生成绩管理系统等。这些练习可以帮助你巩固所学知识,熟悉Java的编程环境。 3. 学习Java核心库:学习了解Java标准库中的常用类和方法,如字符串处理、文件操作、集合框架等。这些库将会在日后的开发中经常使用到。 4. 学习面向对象设计原则:理解面向对象编程的基本原则,如封装、继承、多态等,学习如何设计和组织Java程序的类结构。 5. 学习常用开发工具和集成开发环境(IDE):了解常用的开发工具,如Eclipse、IntelliJ IDEA等。掌握基本的调试和测试技巧,提高开发效率。 6. 学习常用的Web开发技术:学习HTML、CSS、JavaScript等前端技术,了解Java Web开发框架,如Spring、Struts等。尝试编写简单的Web应用程序。 7. 学习数据库技术:了解关系型数据库和SQL语言,学习使用Java连接和操作数据库,如MySQL、Oracle等。 8. 持续学习和项目实践:加入一个开源项目或自己动手开发一个小项目,通过实践提升编程能力,不断学习新的技术和框架。 这是一个基本的Java学习开发路线,通过不断练习和实践,你将逐渐提升自己的编程能力,并成为一名合格的Java程序员。最重要的是保持学习的热情和持续投入。祝你学习顺利!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值