摘要: 享元模式 1 概述 定义: ​ 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存在以下两种状态: 内部状态,即不会随着环境的改变而改变的可共享部分。 阅读全文
posted @ 2021-01-13 22:05 天宇轩-王 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 主从数据库不一致如何解决? 场景描述,对于主从库,读写分离,如果主从库更新同步有时差,就会导致主从库数据的不一致。 1、忽略这个数据不一致,在数据一致性要求不高的业务下,未必需要时时一致性。 2、强制读主库,使用一个高可用的主库,数据库读写都在主库,添加一个缓存,提升数据读取的性能。 3、选择性读主 阅读全文
posted @ 2021-01-13 17:47 天宇轩-王 阅读(1960) 评论(0) 推荐(0) 编辑
摘要: 这道题最好把对象和变量分开说明,否则容易产生误解。以下都是64位环境下。 针对对象: 压缩状态:MarkWord 8+klass 4+数据0+对齐4=16 非压缩状态:MarkWord 8+klass 8+数据0+对齐0=16 针对变量: 压缩状态:4 非压缩状态:8 阅读全文
posted @ 2021-01-13 17:24 天宇轩-王 阅读(143) 评论(0) 推荐(0) 编辑
摘要: AtomicInteger和LongAdder区别 AtomicLong 存在的问题 首先我们来看一段代码: /** * @author WGR * @create 2021/1/13 -- 16:17 */ public class AtomicLongDemo { public static v 阅读全文
posted @ 2021-01-13 16:36 天宇轩-王 阅读(807) 评论(0) 推荐(0) 编辑
摘要: Adder 和 Accumulator 有什么区别 Adder 的介绍 我们要知道 Adder 和 Accumulator 都是 Java 8 引入的,是相对比较新的类。对于 Adder 而言,比如最典型的 LongAdder,在高并发下 LongAdder 比 AtomicLong 效率更高,因为 阅读全文
posted @ 2021-01-13 15:59 天宇轩-王 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 为什么 Map 桶中超过 8 个才转为红黑树? JDK 1.8 的 HashMap 和 ConcurrentHashMap 都有这样一个特点:最开始的 Map 是空的,因为里面没有任何元素,往里放元素时会计算 hash 值,计算之后,第 1 个 value 会首先占用一个桶(也称为槽点)位置,后续如 阅读全文
posted @ 2021-01-13 15:31 天宇轩-王 阅读(543) 评论(2) 推荐(1) 编辑
摘要: 安全点与安全区域 安全点: 程序执行时并非在所有地方都能停顿下来开始GC,只有在特定的位置才 能停顿下来开始GC,这些位置称为“安全点(Safepoint) ”。 Safe Point的选择很重要,==如果太少可能导致GC等待的时间太长,如果 太频繁可能导致运行时的性能问题。==大部分指令的执行时间 阅读全文
posted @ 2021-01-13 13:26 天宇轩-王 阅读(240) 评论(0) 推荐(0) 编辑