-
-
知识整理
基础部分 一、Java 基础与语言特性(语法/编译相关) Java基础知识 Java基本类型的物理存储大小 正确理解JAVA泛型 为什么局部内部类和匿名内部类只能访问final的局部变量或成员变量 HashMap负载因子 反射抛出自定义异常问题 java.sleep背后的逻辑 Java8 Lambda实现条件去重distinct List java-10-features java-11-feat…- 1.9k
- 0
-
每天60秒读懂世界
1、多地公布今年七夕结婚登记数据:广东结婚登记10558对,江苏结婚登记9330对,上海结婚登记2310对创近十年新高;2、国庆预订提前开启:部分旅游线路价格同比下降3成,出境游热门国家酒店预订量翻番;3、信用卡利率管理迎重大调整,央行拟取消信用卡透支利率上限下限管理;4、国有六大行上半年业绩出炉:合计赚6800亿元,日均净赚37.8亿元,不良贷款齐升;5、广州暂停实施汽车“置换更新”补贴政策;广…- 12
- 0
-
局部变量表中槽的问题
jvm的槽为啥是32位,64JVM也是32位呢 1. 什么是 JVM 的“槽”(slot) 在 Java 虚拟机中,局部变量表(Local Variable Table) 是方法栈帧的一部分。 它由一组 slot(槽位) 组成,每个 slot 的基本单位是 32 位(4字节)。 slot 可以存放: int, float, reference, returnAddress 等单槽类型。 long,…- 47
- 0
-
jvm的垃圾回收是如何暂停所有线程的
jvm的垃圾回收是如何暂停所有线程的 1. 为什么需要暂停线程? GC 需要对堆内存中的对象做可达性分析(reachability analysis),判断哪些对象是垃圾。如果应用线程(Mutator Threads)还在继续运行,就可能: 在 GC 标记过程中修改对象引用,导致结果不一致; 在对象回收时还在访问已被标记回收的对象。 因此,GC 必须让所有应用线程在某个点暂停,保证堆结构的一致性。…- 64
- 0
-
DDD
DDD 并不是凭空冒出来的,它确实是从传统的业务驱动拆分路径里,把那些零散的、依赖个人经验的做法提炼成了一套可复用、可传授的方法论,然后加上统一的术语体系,让团队协作、跨团队建模、系统演进更可控。 换句话说 传统业务拆分:靠经验 → 每个架构师可能都有自己的套路 → 结果好坏取决于人 DDD:把这些套路标准化 → 给它命名(限界上下文、聚合、值对象…)→ 形成一整套显性规则 → 让不同团队、不同背…- 67
- 0
-
既然CPU有缓存一致性协议(MESI),为什么JMM还需要volatile关键字?
🧠 为什么 MESI 协议并不足以保证 Java 中的“可见性”语义? 1. MESI 是硬件层级的缓存一致性,volatile 是语言层级的可见性保证 MESI 主要解决“同一物理地址在多核缓存中的副本一致性问题”; 根据MESI,CPU某核(假设CPU0)的缓存行(包含变量x)是M S 或E的时候,如果总线嗅探到了变量x被其其他核(比如CPU1)执行了写操作(remote write)那么CP…- 40
- 0
-
HashMap负载因子
HashMap 1. Hash 冲突后的数据结构变化(JDK8 之后的优化) 在 JDK8 之前,HashMap 发生冲突后使用的是链表结构,导致在极端情况下时间复杂度退化为 O(n)。 JDK8 开始引入红黑树结构优化: 当某个桶(链表)中的元素个数超过 TREEIFY_THRESHOLD = 8 且容量超过 MIN_TREEIFY_CAPACITY = 64 时,该桶的链表会被转化为红黑树; …- 50
- 0