Java常见面试题(六)
1、对象由什么组成?
对象头、实例数据、对齐填充(占位符)
2、对象头里有什么?
运行时数据、类型指针、数组长度
3、非双亲委派模型有哪两种?
线程上下文类加载器
OSGi
4、JVM的哪些内存需要被回收?
堆内存
5、JVM线程并行和并发的区别?
多条垃圾收集线程同时工作,但此时用户线程处于等待状态;
用户线程与垃圾收集线程同时执行。
6、JVM的指令集有哪两种?
基于栈的指令集(JVM默认)。可移植,但执行速度较慢;
基于寄存器的指令集。主流物理机所用。
内容来源:小谢backup
7、分布式CAP代表什么?
一致性(Consistency)
可用性(Availability)
分区容忍性(Partition tolerance)
8、分布式锁的实现方式有哪三种?
数据库锁
缓存锁
ZooKeeper分布式锁
9、分布式回话有几种实现方式?
- 基于数据库
- 基于NFS
- 基于缓存框架(如redis,memcached)
- 基于cookie
- 基于tomcat本身的session复制机制
10、观察者模式和发布订阅有什么区别?
后者完全解耦,且有中间代理。