架构师基础面试知识总结

329 阅读3分钟

       2019-5-26 22:38:00 北京下了一天雨,很凉爽,周日无聊的下午,给网友整理了一些面试题,知识点大概覆盖百分之八十了,不是很具体,也不是很全,最下方有我个人博客,里面收录了大部分题目答案,没有的我会慢慢更新,欢迎关注我个人资料的公众号。

并发编程:

  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. 分布式任务调度

附赠面试题:www.wangzha.tech/tags 我的个人博客。

总结的不是很全,题目不全,后续会慢慢更新。

关注我gongzhonghao:be_coder,里面会更新,有需求公众号给我留言。