Java架构师必备技能

1、Java基础技术体系掌握牢固:

  • JVM内存分配
  • 垃圾回收
  • 类装载机制
  • JVM性能优化
  • 反射机制
  • 多线程
  • 网络编程
  • 常用数据结构和相关算法

2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式:

  • 熟练使用UML工具以及各种流程图
  • 经典的设计模式会手写以及熟知使用场景
  • 概要设计与详细设计
  • 面向对象的核心思想需要运用在代码编程中,例如:高内聚低耦合

3、目前流行开源框架,除了熟练使用,还需要掌握核心原理和实现

  • Spring
  • Springmvc
  • MyBatis

建议看源码以及debug配合掌握实现原理。


4、熟悉Oracle、MySQL等SQL,以及MongoDB等NoSQL开发。

  • 特别是MySQL,相关的索引优化、SQL查询优化、慢的事务优化等,以及MySQL的分库分表等也需要掌握。
  • MongoDB等典型的NoSQL大数据场景设计

5、CDN,以及分布式缓存系统Redis或 Memcached的设计和研发

CDN与分布式缓存的设计原理其实是一致的,重点你需要掌握两者之间的区别和使用场景。


6、熟悉底层中间件等分布式技术

  • 分布式技术涉及范围比较广,例如相关的消息中间件就会涉及到3个以上,为什么要选择Kafka或者RabbitMQ,选择和比较需要掌握。
  • 除此之外,很多内部系统还会涉及到JBPM工作流中间件等。

7、精通shell编程,熟练应用awk、sed、grep、strace、tcudump、gdb等常用命令。

8、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验。

大型分布式就会设计到高并发解决方案,以下有相关的知识。

9、对配置管理和敏捷研发模式有所了解。

  • jekins、nexus、git等
  • 敏捷开发、极限编程等。

10、熟悉常见的一些解决方案及其原理

单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、流计算等。

11、能大概知道市面上主流技术的特点及业务瓶颈

例如秒杀系统等如何设计。


参考: http://youzhixueyuan.com/11-technical-points-that-must-be-broken-through-by-java-architect.html

你可能感兴趣的:(设计模式,Mybatis,微服务,java面试题,jvm,Redis,Spring,分布式,多线程,MySQL,java必备技能,java架构师必备技能)