2019-5-26 22:38:00 北京下了一天雨,很凉爽,周日无聊的下午,给网友整理了一些面试题,知识点大概覆盖百分之八十了,不是很具体,也不是很全
并发编程:
- 线程基础,线程协作:基础概念,如何启动终止,线程共享,线程协作,fork/join
- 线程并发包:
- countdownlatch作用,应用场景和实现。
- CyclicBarrier作用,应用场景和实践。
- semaphore作用,应用场景or实践。
- exchange作用,应用场景。
- Callable Future 和 FutureTask
- 原子操作 CAS:CAS原理,原子操作类有哪些,使用场景。
- 显示锁和AQS:显示锁,LockSupport工具,AbstractQueuedSynchronize实现及源码分析
- 并发容器:ConcurrentHashMap,阻塞队列。
- 线程池
- 什么是线程池,为什么要使用线程池。
- 4种实现方式,有什么区别。
- 如何实现一个自己的线程池
- 线程池工作机制
- Executor框架
- CompletionService
- 并发:
- 类线程安全问题
- 如何判断类线程安全
- 线程不安全会引发什么问题
- 线程安全单例模式
JVM性能调优
- Java内存模型
- 运行时数据区域
- 解析堆栈
- 方法的入栈和出栈
- 堆参数设置,内存溢出实战
- 垃圾回收,内存分配策略
- 如何判断对象存活,有哪些算法。
- 对象之间的引用:强,弱 等四种引用
- GC算法
- 分代回收
- 垃圾回收器
- STW的解释
- JDK有哪些性能调优工具
- JVM执行子系统
- 类加载机制
- 方法调用详解
23种设计模式
Mysql
- 常见的几种存储引擎,Innodb重点了解
- 锁,事务,
- 分库分表设计方法
- 索引的数据结构。
网络
- TCP,UDP,HTTP
- JDK的NIO BIO
- Netty是什么,为什么用Netty。
- 序列化框架
- Netty源码分析。
架构师高阶知识总结:
- 分布式相关:
- 分布式协调和分流,Zookeeper基础
- Nginx高并发应用,正向代理,反向代理,动静分离,LVS
- 分布式架构中如何解决一致性问题
- 异步与消息中间件
- 消息中间件有哪些,如常见的RabbitMQ,Rocket MQ,Kafka
- 熟悉其中一个,深入研究即可,如Kafka为何吞吐量高。
- 如何解决消息重复和消息丢失
- 缓存和NoSql
- Redis常用数据结构
- Redis主从复制策略,持久化策略。
- 哨兵机制
- 如何设计高可用集群
- 如何解决Redis数据倾斜问题,
- 热点数据如何解决
- 淘汰策略
- 高可靠数据存储方法
- 分布式常见场景解决实战
- 分布式事务解决方案
- 单点登录解决方案
- 分布式任务调度