Java 学到什么程度才算精通?,springmvc 原理图解
[](
)2.4 Java 并发技术
Java 的并发技术泛指 Java 的多线程技术,以及 JUC 包里的并发类,比如线程池,并发工具类,阻塞队列等等。
Java 并发技术完全可以独立出来学习,是 Java 进阶知识的一大重点。
[](
)2.5 Java 网络编程和服务器
这一块内容是 Java 中比较复杂但也很重要的一块内容。比如 BIO,NIO,AIO 的一些使用和原理,以及 tomcat 这类 web 服务器,甚至是 netty 这种网络编程框架,都是可以去了解和学习的内容。
[](
)2.6 Jvm 基础与调优
JVM 是提供 Java 程序运行的一个进程,学习 JVM 知识,也是我们的必经之路。除了看懂《深入理解 jvm 虚拟机》以外,我们还要学习的内容就是 JVM 调优,使用合适的工具诊断问题,最后解决问题。
这部分内容在面试中呈现的不仅仅是 GC,内存分区,
以及类加载器,也包括了我所说的 JVM 调优问题。
[](
)3 Linux
==========================================================================
作为后台同学,常年被面试官问 linux 相关的问题,所以觉得学好 linux 还是蛮重要的,除了基本命令以外,最好还能了解一些 shell 脚本,甚至是内核相关的知识,这方面是我的一个弱项。
[](
)4 数据相关
=========================================================================
在这个路线图里,数据部分囊括了非常多的数据源,我们可以来看看都有哪些是我们需要掌握的。
[](
)4.1 关系数据库 Mysql
这个不必多说,人手都要会,不管是基础的 crud,索引,抑或是进阶的存储引擎,分布式方案等,我们都需要对应掌握。
[](
)4.2 缓存
如 Redis,memcache 一类的缓存,作为后端开发者的我们也需要对应掌握,当然,它们的高级特性,以及分布式方案,也是必备的知识点。
[](
)4.3 搜索引擎
基于 Lucene 的 solr,elasticsearch 这类搜索引擎,本质上也是数据源,但是并不是后端必备的内容,不过学一学也没有坏处啦。
[](
)4.4 大数据
海量数据处理的场景越来越多,大数据技术如 hadoop,storm 等也越来越火,但是大数据应用一般会由专业的大数据工程师来做,所以我们学一些基本内容也就足够了。
[](
)5 算法和数据结构
============================================================================
算法一直是校招同学面前的一座大山,作为后端同学来讲,除了基本的数据结构算法以外,也要会一些高级的算法,譬如 dp,搜索,贪心等等。
另外,通过 LeetCode 等题库来刷题的方式来巩固算法也是公认的好办法了。
[](
)6 分布式
========================================================================
最后一个部分,也是内容最多,覆盖面最广泛的部分了。分布式相关的技术实在太多了,我们这里也会做一下简单的归纳。
[](
)6.1 web 架构
先了解 web 架构的发展会对分布式的学习有更好的理解,毕竟架构的发展也对应着分布式技术的发展。
[](
)6.2 分布式理论
这部分内容包括分布式的发展演化,base 理论和 cap 理论等等,学习分布式技术之前,最好能对这部分概念有一定了解。
[](
)6.3 一致性问题
强一致性的解决方案:事务和锁,弱一致性的方案:消息队列。
[](
)6.4 分布式 session
一个常见的问题,也有多种解决方案
[](
)6.5 分布式缓存
和上面说的缓存一样,只不过这里侧重缓存的分布式方案
[](
)6.6 分布式数据库
这里指的数据库的分布式方案,也包括 hbase 这种分布式数据库。
[](
)6.7 负载均衡
负载均衡也是一个值得探讨的话题,一般我们讨论的是七层和四层负载均衡。
[](
)6.8 消息队列
消息队列是一个比较复杂的分布式组件,我们可以了解常用消息队列比如 amq,kafka 等的实现。
[](
)6.9 服务化
评论