Interview Points

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 

猜你喜欢

转载自josh-persistence.iteye.com/blog/2278641