- HashSet如何保证元素的唯一性
equls和hashcode判断 - 父子类加载顺序
父类静态属性(成员变量) > 父类静态代码块 > 子类静态属性 > 子类静态代码块 > 父类非静态属性 > 父类非静态代码块 > 父类构造器 > 子类非静态属性 > 子类非静态代码块 > 子类构造器 - 如何保证redis和mysql数据一致性link
- 先读缓存没有再读数据库取出数据后放入缓存
- 先更新数据库再删除缓存(为什么删除因为懒加载)
- 先删除缓存再修改数据库(因为读的时候可以解决问题)
- mysql几个log
- binlog
- CREATE/ALTER TABLE INSERT/UPDATE/DELETE
- 二进制日志索引文件(用于记录所有的二进制文件.index)/二进制日志文件(记录数据库所有的DDL和DML.00000*)
- 每1s刷入磁盘 | 每次事务提交刷入磁盘 | 每个1s刷入磁盘+每次事务提交刷入磁盘
- undo log
- 将需操作的old数据备份到一个地方 事务原子性的原理
- redo log
- 将需操作的new数据备份到一个地方 事务一致性的原理
- relay-log
- 主从复制 和binlog类似
- binlog
- CopyOnWritelink
- 是一种程序设计中的优化策略,其实现思路是大家都在共享一个内容,当有人想要修改内容的时候,就创建一个改内容的副本,对副本进行修改,然后再将原本的引用指向副本,完成内容的修改。是一种读写分离的并发策略,也是一种延时惰性策略
- CopyOnWriteArrayList
- CopyOnWriteArraySet
- 优点
- 读取性能很高 适合读多写少
- 读写分离策略
- 缺点
- 内存占用高 Yong GC和Full GC
- 数据一致性问题 只保证数据的最终一致性
- ThreadLocal
- 优点 线程私有 并发共用变量隔离
- 缺点 ThreadLocalMap(key,value); key是ThreadLocal本身对象弱引用易回收 value是强引用不容易回收 可能导致内存泄漏()
- 底层 Entry<ThreadLocal<?> k, Object v> Entry extends WeakReference
question
最新推荐文章于 2022-11-05 18:19:43 发布