作为一个架构师你需要具备的技能总结



作为一个架构师你需要具备的技能总结

作为一个架构师你需要具备的技能总结

王炸

王炸

美团网 Java工程师

2019.05.26 北京下了一天雨,很凉爽,周天下午下楼喂喂野猫,回来给网友整理了一些面试题,知识点大概覆盖百分之八十了,不是很具体,也不是很全,最下方有我个人博客,里面收录了大部分题目答案,没有的我会慢慢更新,欢迎关注我个人资料的公众号。

并发编程:

  1. 线程基础,线程协作:基础概念,如何启动终止,线程共享,线程协作,fork/join
  2. 线程并发包:
    1. countdownlatch作用,应用场景和实现。
    2. CyclicBarrier作用,应用场景和实践。
    3. semaphore作用,应用场景or实践。
    4. exchange作用,应用场景。
    5. Callable Future 和 FutureTask
  3. 原子操作 CAS:CAS原理,原子操作类有哪些,使用场景。
  4. 显示锁和AQS:显示锁,LockSupport工具,AbstractQueuedSynchronize实现及源码分析
  5. 并发容器:ConcurrentHashMap,阻塞队列。
  6. 线程池
    1. 什么是线程池,为什么要使用线程池。
    2. 4种实现方式,有什么区别。
    3. 如何实现一个自己的线程池
    4. 线程池工作机制
    5. Executor框架
    6. CompletionService
  7. 并发:
    1. 类线程安全问题
    2. 如何判断类线程安全
    3. 线程不安全会引发什么问题
    4. 线程安全单例模式

JVM性能调优

  1. Java内存模型
    1. 运行时数据区域
    2. 解析堆栈
    3. 方法的入栈和出栈
    4. 堆参数设置,内存溢出实战
  2. 垃圾回收,内存分配策略
    1. 如何判断对象存活,有哪些算法。
    2. 对象之间的引用:强,弱 等四种引用
    3. GC算法
    4. 分代回收
    5. 垃圾回收器
    6. STW的解释
    7. JDK有哪些性能调优工具
  3. JVM执行子系统
    1. 类加载机制
    2. 方法调用详解

23种设计模式

Mysql

  1. 常见的几种存储引擎,Innodb重点了解
  2. 锁,事务,
  3. 分库分表设计方法
  4. 索引的数据结构。

网络

  1. TCP,UDP,HTTP
  2. JDK的NIO BIO
  3. Netty是什么,为什么用Netty。
  4. 序列化框架
  5. Netty源码分析。

架构师高阶知识总结:

  1. 分布式相关:
    1. 分布式协调和分流,Zookeeper基础
    2. Nginx高并发应用,正向代理,反向代理,动静分离,LVS
    3. 分布式架构中如何解决一致性问题
  2. 异步与消息中间件
    1. 消息中间件有哪些,如常见的RabbitMQ,Rocket MQ,Kafka
    2. 熟悉其中一个,深入研究即可,如Kafka为何吞吐量高。
    3. 如何解决消息重复和消息丢失
  3. 缓存和NoSql
    1. Redis常用数据结构
    2. Redis主从复制策略,持久化策略。
    3. 哨兵机制
    4. 如何设计高可用集群
    5. 如何解决Redis数据倾斜问题,
    6. 热点数据如何解决
    7. 淘汰策略
  4. 高可靠数据存储方法
  5. 分布式常见场景解决实战
    1. 分布式事务解决方案
    2. 单点登录解决方案
    3. 分布式任务调度

联系我

VX搜索【转行程序员】回复”加群“,我会拉你进技术群。讲真的,在这个群,哪怕您不说话,光看聊天记录也是一种成长。阿里/腾讯/百度资深工程师、Google技术大神、IBM工程师、还有我王炸*、各路大牛都在,有任何不明白的都进群提问。

最后,觉得王炸到文章不错就来个三连吧:关注 转发 点赞


猜你喜欢

转载自blog.51cto.com/14984172/2562813