aop原理
动态代理,反射实现。
hashmap存储原理
jdk1.8数据结构数组链表红黑树,当put元素的时候,首先会计算key的hash值,
hash返回值会决定节点存储位置,优先存在数组结构,hash值相同数组存的位置相同,
源码会调用equals方法,ture覆盖原有的值,false存在链表上,新加的元素在会在链头。
如果链表长度过长,这时会存在红黑树结构上。
hashmap扩容
优先使用数组存储,默认长度是16,当hash因子为0.75,存储节点数大于百分之75,hashmap
会扩容成2倍数,重新分配内村地址,会复制原来的数据,扩容也是好性能的操作。
幂等性概念
系统多次扣款,多次发送短信。。都是幂等性问题。所谓幂等性,相同参数重复执行,执行结果相同,
结果不会影响系统状态。一般解决办法,唯一主键,悲观锁,乐观锁,token机制,分布式锁。。
redis持久化
快照从内存获取数据某时间点的一个副本,快照复制到服务器磁盘,redis默认持久化方式,由于系统
等原因故障最近一次快照数据会丢失。
与快照相比,aof持久化实时性更好,以此成为主流的持久方案。三种同步方式,每次有数据修改,
每秒同步一次,让操作系统决定 。缺点是占用空间严重,redis新版本支持混合持久化方式。