史上最全java架构师技能图谱(上)

java架构师最全技能图谱上篇,包含:数结构算法、java进阶、web开发、框架与工具四大技能图谱。 下篇将包含大数据以及性能、设计模式、UML、中间件、分布式集群、负载均衡、通讯协议、架构设计等技术图谱等章节

本文作者,陈睿 优知学院创始人,前百度研发经理,携程定制旅游CTO。

优知学院是IT人在线进阶站,帮助IT人升职加薪,导师来自于BAT等一线互联网公司总监。提供系统的互联网产品技术进阶干货资料和课程,以及定期的线下实战活动。

一:数据结构算法

算法分析

时间复杂度和空间复杂度

算法思想

递推、递归、穷举、贪心、分治、动态规划、迭代、分枝界限

数据结构

数组、链表、堆、栈、队列、Hash表、二叉树等

算法

排序

经典排序:插入排序、冒泡排序、快排(分划交换排序)、直接选择排序、堆排序、合并排序等

查找

经典查找:顺序查找、二分查找、二叉排序树查找

高级算法

贪婪

回溯

剪枝

动态规划

大数据算法

hash分桶

统计

二:Java进阶

java编程基础:

对象和类 、基本数据类型 、变量类型、运算符、循环分支结构、数组、正则表达式等

集合

总的说来,Java API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下:

Collection<–List<–Vector

Collection<–List<–ArrayList

Collection<–List<–LinkedList

Collection<–Set<–HashSet

Collection<–Set<–HashSet<–LinkedHashSet

Collection<–Set<–SortedSet<–TreeSet

面向对象高级知识

类、对象、继承、构造函数、封装、接口、抽象类、多态、重写、this static关键字、类与对象的关系

异常处理

异常类类图:throwable exception error RuntimeException

异常处理机制

如何定义和使用异常

运行时异常和受检查异常区别

运行时错误

java异常处理的原则和技巧

多线程

概念与原理

创建于启动

线程的生命周期及五种基本状态

线程交互

死锁

调度合并

调度让步

调度休眠

同步方法

同步块

同步与锁

线程池

阻塞队列

IO/NIO

同步阻塞 同步非阻塞 异步IO

反射

序列化

泛型

网络编程

高级特性

JVM

运行时数据区:方法区、虚拟机栈、本地方法栈、堆、程序计算器

GC算法:

内参回收三要素:什么内容需要回收、什么时候回收、如何回收

并发与执行

引用计数算法

根搜索算法

垃圾回收算法:标记-清楚算法 复制算法 标记-整理算法 分代手机算法

垃圾收集器:新生代、老年代收集器

溢出

java堆溢出

方法区溢出

outofmemoryerror

虚拟机栈和本地方法栈溢出

直接内容溢出

三:Web开发核心

HTML JS CSS

html js css语法基础

Js css框架

Html开发工具

JS和CSS调试工具

模板引擎

jsp

velocity

freemarker

Java web

容器:tomcat jetty等

热部署插件:run-jetty-run

cookie session使用和区别

fliter和listener的启动和步骤

身份验证

单点登录原理以及实现

web核心

事物JTA

JMX

安全:JCCA/JAAS

通信:JNDI/JMS

SSI技术

linux

常用命令以及操作系统原理等

线上故障处理和分析

性能工具

visualVM Jprofiler JMeter等

线上故障

线程数超标

访问超时

长事务

CPU超标

内存超标

开发工具使用

web开发调试

firebug

Web Developer

JavaScript Debugger

IETester

Yslow

构建工具

maven Grails

maven私服 nexus

版本控制

git svn

java调试工具

JCover

Junit

Jtest

以及大量的eclipse插件,eg:findbugs等

开发框架

SSH:struts2+spring+hibernate

SSM:springmvc+spring+mybatis

阿里开源框架

如果你对架构师比较感兴趣,可以查看优知学院官网架构师进阶系列文章

以上内容就是java架构师技能图谱上篇,下篇将包含大数据以及性能、设计模式、UML、中间件、分布式集群、负载均衡、通讯协议、架构设计等技术图谱等章节。


没钱没人脉也能轻松入门,让你每年多赚10万!

相关文章

Java程序员需要具备哪些专业技能?

我们都知道,Java程序员是一个技术岗位,从技术上和业务上都需要不断地提升自我。经常有小伙伴疑惑:一个合格的Java程序员需要会哪些东西?今天,就来和大家好好聊一聊,超多干货,快快收藏哦! Java程...

Java 开发人员所需的技能

  Java 的潜力一直是许多公司的话题。 事实上,几乎每家公司都在使用 Java,无论是小公司还是一些大型科技巨头公司。另一方面,还有许多其他公司正在招聘 Java 开发人员。Java开发人员技能可...

【重磅】JAVA工程师入行秘籍:必备技能与未来发展趋势!

作为一种在全球范围内应用广泛的编程语言,Java以其稳定性、跨平台性和高性能等优势,成为了企业级应用开发的首选。而对于许多程序员来说,成为一名合格的Java工程师,无疑是进入软件开发行业的黄金通道。那...

经验 | Java工程师需要具备的25个技能

在Java工程师日常的开发过程中,由于业务的不同,可能关注的点有很多不一样的地方,但是在技术掌握层面还是有一些共性的。本文概括了在Java工程师开发、测试、部署等方面的25个必备技能,供大家参考。01...

一个高级Java工程师需要掌握哪些技能?

Java核心知识,包括集合类,IO/NIO,JVM,内存模型,泛型,异常,反射,多线程,锁,CAS,AQS等数据结构与算法,包括常见的排序,查找,树,图,堆,栈,队列,链表,哈希表等,以及一些经典的算...

Java基础知识有哪些 怎么不断提高专业技能

  Java基础知识有哪些?怎么不断提高专业技能?在学习Java的过程中,需要从基础知识慢慢理解,通过一点点的学习积累,能够不断懂得编程的概念。基础知识的学习非常重要,Java编程其实并不难学,难的是...