码迷,mamicode.com
首页 > 编程语言 > 详细

Java到底要学到什么程度才能称之为“精通”?

时间:2019-03-24 21:54:49      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:进程   新特性   mys   hadoop   ado   ESS   arch   常用类   中比   

一、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调优问题。

二、Linux

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

三、数据相关

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

关系数据库Mysq

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

缓存

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

搜索引擎

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

大数据

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

四、算法和数据结构

算法一直是校招同学面前的一座大山,作为后端同学来讲,除了基本的数据结构算法以外,也要会一些高 级的算法,譬如dp,搜索,贪心等等。 另外,通过LeetCode等题库来刷题的方式来巩固算法也是公认的好办法了。

五、分布式

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

web架构

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

分布式理论

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

一致性问题

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

分布式session

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

分布式缓存

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

分布式数据库

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

负载均衡

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

消息队列

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

服务化

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

虚拟化

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

Java到底要学到什么程度才能称之为“精通”?

标签:进程   新特性   mys   hadoop   ado   ESS   arch   常用类   中比   

原文地址:https://blog.51cto.com/14230003/2368272

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!