面试试答0316

Spring AOP 实现,代理

my:AOP 的原理是利用反射,在原有类的基础上生成了一个代理类,在代理上进行切面操作。 answer: 原理

JDK 动态代理和 Cglib 动态代理性能比较

my:动态代理基于接口,Cglib代理基于子类 answer: #TODO

线程池 Execute 和 Submit 的区别

my:Execute 返回一个 Callable 对象;Submit 返回一个 Future 对象。

内存屏障分为哪几种

my:读写、写读、读读、写写

内存屏障在哪里被使用

my:不懂

AQS

my:不懂 answer:AQS

int 几个字节;String 一个英文字符多少字节,一个中文字符多少字节

my:4个字节 answer:int 4个字节(32位),String 英文字符1个字节,中文字符GBK格式下2个字节,UTF-8格式下3个字节。

redis 数据结构

my:基本数据结构 String list set zset hash answer:Redis 数据类型

zset怎么实现

my:不懂 answer:zset

什么是跳表

my:忘了 answer:跳表

zrange 如何实现

my:不懂 answer:算了,不看了

Redis 持久化

my:redis 主要有两种持久化方式,RDB 和 AOF。RDB是定期的快照,AOF是在执行对内存的操作的时候,同时写入日志。RDB的优点是性能好,缺点是数据时效性低。AOF性能差,时效性高。新版本的 redis 有混合 RDB 和 AOF 的方式。 answer:Redis 持久化

事务隔离级别

my:读未提交,读已提交,可重复读,串行化。读已提交可解决脏读问题,可重复读可解决不可重复读问题,串行化可解决幻读问题。

幻读是什么

my:读未提交,读已提交,可重复读都会出现幻读。指的是范围查询时数据条数不一致 answer:幻读

https 原理

my:s指的是SSL answer:HTTPS

CPU 100% 怎么处理

my:用 top 查看 CPU 占用高的进程,然后 top -p pid -H 查看 CPU 占用高的线程,然后把线程号转成16进制。用 jstack pid ,然后查询对应线程号。