• 欢迎访问本站,本站记录博主日常编程遇到的问题,知识,惊奇软件等。如有问题还请留言


    Deprecated: strip_tags(): Passing null to parameter #1 ($string) of type string is deprecated in /www/wwwroot/gschaos.club/wp-content/themes/Git-alpha-6h0SRk/header.php on line 294
局部变量表中槽的问题

局部变量表中槽的问题

jvm的槽为啥是32位,64jvm也是32位呢1. 什么是 jvm 的“槽”(slot)在 java 虚拟机中,局部变量表(Local Variable Table) 是方法栈帧的一部分。它由一组 slot(槽位) 组成,每个 slot 的基本单位是 32 位(4字节)。slot 可以存放:int, float, reference, retu……

jvm的垃圾回收是如何暂停所有线程的

jvm的垃圾回收是如何暂停所有线程的

jvm的垃圾回收是如何暂停所有线程的1. 为什么需要暂停线程?GC 需要对堆内存中的对象做可达性分析(reachability analysis),判断哪些对象是垃圾。如果应用线程(Mutator Threads)还在继续运行,就可能:在 GC 标记过程中修改对象引用,导致结果不一致;在对象回收时还在访问已被标记回收的对象。因此,GC 必须让所……

DDD

DDD

DDD 并不是凭空冒出来的,它确实是从传统的业务驱动拆分路径里,把那些零散的、依赖个人经验的做法提炼成了一套可复用、可传授的方法论,然后加上统一的术语体系,让团队协作、跨团队建模、系统演进更可控。换句话说传统业务拆分:靠经验 → 每个架构师可能都有自己的套路 → 结果好坏取决于人DDD:把这些套路标准化 → 给它命名(限界上下文、聚合、值对象…)→……

既然CPU有缓存一致性协议(MESI),为什么JMM还需要volatile关键字?

既然CPU有缓存一致性协议(MESI),为什么JMM还需要volatile关键字?

🧠 为什么 mesi 协议并不足以保证 java 中的“可见性”语义?1. mesi 是硬件层级的缓存一致性,volatile 是语言层级的可见性保证mesi 主要解决“同一物理地址在多核缓存中的副本一致性问题”;根据mesi,CPU某核(假设CPU0)的缓存行(包含变量x)是M S 或E的时候,如果总线嗅探到了变量x被其其他核(比如CPU1)执行了……

HashMap负载因子

HashMap负载因子

HashMap1. Hash 冲突后的数据结构变化(jdk8 之后的优化)在 jdk8 之前,HashMap 发生冲突后使用的是链表结构,导致在极端情况下时间复杂度退化为 O(n)。jdk8 开始引入红黑树结构优化:当某个桶(链表)中的元素个数超过 TREEIFY_THRESHOLD = 8 且容量超过 MIN_TREEIFY_CAPACITY ……

理解Aop

理解Aop

🧭 整体结构总览层级技术视角控制权体现提供能力对上层支撑1. 计算机硬件CPU、存储、总线线性执行+跳转程序计数器、堆栈、跳转指令支持有序与跳跃控制2. 计算机组成原理存储程序原理、函数调用栈跳转+调用+返回+中断函数、递归、上下文切换抽象为过程式语言3. 操作系统用户态、内核态、线程调度控制权分时复……

java.sleep()

java.sleep()

java的thread.sleep方法是会响应中断的,cpu会使用定时器,定时器到时会触发中断让cpu调度这个线程,但是我不明白java中将线程设置中断,为什么sleep可以响应中断指令,是怎么做到的?java 的 Thread.sleep() 为什么可以响应 interrupt()?在 java 中,Thread.sleep() 会放弃 CPU 执行权……

JDK12新特性及旧版本变更

JDK12新特性及旧版本变更

新的字符串和文件方法在 Java 11 中,我们已经获得了一些新的 String 方法,以及Files.readString() 和 writeString() 方法。而在 Java 12,jdk 开发人员对这两个类进一步扩展,新增了一些实用的方法。String.indent() —— 方便的字符串缩进在 Java 12 之前,如果我们想给字符串添加缩……

java-11-features

java-11-features

Lambda 参数的局部变量语法jdk 增强提案 323允许在隐式类型 lambda 表达式的中使用“var”关键字。先来看 显式类型 的 Lambda 表达式。在下面的代码中,参数 l 和 s 的类型 被明确声明(List<String> 和 String):(List<String> l, String s) -> l……

java-10-features

java-10-features

局部变量类型推断("var")从 Java 10 开始,我们可以使用关键字 var 来声明局部变量(局部意味着在方法内部)。例如,以下定义是允许的:var i = 10;var hello = "Hello world!";var list = List.of(1, 2, 3, 4, 5);var httpC……

Java 生态下想搞大流量下的 ws,是不是暂时只能 netty?

Java 生态下想搞大流量下的 ws,是不是暂时只能 netty?

最近项目想上直播和拍卖业务,自身流量也是比较大,想问下目前业界 ws 方案下是不是更推荐 netty 或者有没有其他可以参考的方案呢?直播推流这快准备用阿里云的,直播上会用到 ws 的也就是评论,拍卖可能就是出价和评论。1. 使用 netty 的建议sagaxu:不要直接用 netty,建议使用 Vert.x 或者 Quarkus。wxw752:我……

生产OOM排查

生产OOM排查

简化版代码:package com.mystic.ycc.blog.test;import org.bouncycastle.jce.provider.BouncyCastleProvider;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import j……

线程和同步性能

线程和同步性能

线程和同步性能线程和硬件💡 CPU 增加线程并不能使应用程序性能倍增任务被提交到一个队列(可能不止一个队列),然后一定数量的线程会从队列中取出任务并执行它们线程池的大小对实现最佳性能至关重要在某些情况下,过大的线程池会导致性能急剧下降线程池大小应根据系统负载、CPU 和 I/O 任务比例来决定线程数超出 CPU 数量可能会降低吞吐量💡 C……

JDK 8 到 JDK 23 的 ​语法糖(语言特性)​ 和 ​垃圾回收(GC)优化

JDK 8 到 JDK 23 的 ​语法糖(语言特性)​ 和 ​垃圾回收(GC)优化

jdk 8 到 jdk 23 的 语法糖(语言特性) 和 垃圾回收(GC)优化语法糖(语言特性)演进从 Lambda 表达式到模式匹配,java 逐步引入更简洁的语法和现代编程范式。jdk 8(2014)Lambda 表达式:List list = Arrays.asList("a", "b", "c");list.forEach(s ->……

JAVA 对象头分析及Synchronized锁

JAVA 对象头分析及Synchronized锁

JAVA 对象头分析及synchronized锁对象内存布局HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。[]]从上面的这张图里面可以看出,对象在内存中的结构主要包含以下几个部分:Mark Word(标记字段):对象的Mark Word……