1、性能调优
2、IO 导致性能问题
3、集群:缓存集群,数据库,Nosql,大数据处理集群
4、性能最高最安全的单例模式。
6、架构经验,架构独到之处及对性能的提升
7、ZK的缺点,怎么解决?
8、小型网站或应用的缓存实现,画图,大型分布式网站的缓存实现,画图。基于大型分布式网站的缓存实现,怎么得出分布式session系统架构。
9、一致性哈希算法的原理和实现
10、集群管理中的领导者选举算法: Paxos算法与谦让算法。
11、悲观锁 乐观锁
11、用代理模式实现延迟加载的一个经典应用就在Hibernate框架中。当Hibernate加载实体Bean时,并不会一次性将数据库所有的数据都加载。默认情况下,他会采取延迟加载的机制,以提高系统的性能。Hiberate中的延迟加载主要有两种:一是属性的加载,二是关联表的加载。
12、NIO中的核心对象Buffer,Channel,Buffer的几个属性,主要方案,分片,只读缓冲区、复制缓冲区等,NIO还提供了文件映射到内存的方法,DirectBuffer的性能和运行参数设置以及缺点(创建和销毁浪费性能)
Java中的两种IO的涉及:BIO,NIO:IO的多路复用技术。
13、Java中的四种引用,如果需要一张很大的Map表作为缓存使用,weakHashMap的选择,weakhashmap使用弱引用,可以自动释放已经被回收的key所在的表项。但如果weakhashmap的key都在系统内持有强引用,那么weakhashmap就退化为普通的hashmap,因为所有的表项都无法被自动清理。
14、并行程序开发及优化
1)常用的多线程设计模式:Futuer模式、Master-Worker模式、Guarded Suspeionsion模式、不变模式和生产者消费者模式
2)JDK内置的多线程框架和各种线程池
3)JDK内置的并发数据结构
4)Java并发控制的方式:内部锁、重入锁、读写锁、ThreadLocal变量、信号量等
5)有关“锁”的一些优化方法
6)使用无锁的方式提升高并发程序的性能
7)使用轻量级的协程获得更高的并行度。
8)自我实现一个线程池
9)自我实现一个阻塞队列
15、Java8的新特性
16、Java源生实现一个RPC框架:需要哪些类?
17、应用架构的演进,各个时代的问题和主要要解决的问题
18、作为一个架构师,如果你来设计支付宝的架构,你觉得它会怎样发展?
19、并行服务调用的3种方式。
20、如果有过支付的经验,可以从账务数据库和交易数据库数据容量性能瓶颈发生后,怎么做?数据垂直拆分后,最大的问题是啥?数据一致性怎么通过二阶段去保证,二阶段保证有哪些强制的要求。消息型的二阶段提交的场景,不是实时一致性,而是最终的一致性。反到大促。。。
21、怎样形成无限扩容的数据库方式。
X、JVM内存调优:
1)Java虚拟机的内存模型:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区
2)JVM内存分配参数:设置最大堆内存、最小堆内存、新生代、持久代、线程栈、堆比例分配
3)垃圾收集器的类型
4)Tomcat的调优案例:加快Tomcat的启动
X1、Java性能调优工具
1)Linux命令行工具
2)Windows命令行工具
3)JDK命令行工具:jps,jstat,jinfo,jmap,jhat,jstack,jstatd,hprof
4)JConsole
5)VisualVM
6)OQL
7)MAT
8)JProfile