这是个什么鬼呢?我们都知道,CPU的计算时间是以分片的方式给到每个线程的,换句话说,所谓的并行其本质就是串行。比如线程A执行到了一部分,CPU将控制权给了线程B,那么线程A重新得到CPU的资源时,如何恢复工作呢?这个程序计数器就...
哈喽,我是子牙。十余年技术生涯,一路披荆斩棘从技术小白到技术总监到JVM专家到创业。技术栈如汇编、C语言、C++、Windows内核、Linux内核。特别喜欢研究虚拟机底层实现,对JVM有深入研究。分享的文章偏硬核,很硬的那种。...
最近爆肝了这系列文章 全网最硬核 Java 新内存模型解析与实验,从底层硬件,往上全面解析了 Java 内存模型设计,并给每个结论都配有了相关的参考的论文以及验证程序,我发现多年来对于 Java 内存模型有很多误解,并且我发现很...
相信很多 Java 开发,都使用了 Java 的各种并发同步机制,例如 volatile,synchronized 以及 Lock 等等。也有很多人读过 JSR 第十七章 Threads and Locks(地址:https://docs.oracle.com/javase/specs/jls/se17/html/jl......
JDK(Java Development Kit)是 Java 语言的软件开发工具包,它包含有JRE、编译器和调试器等用于程序开发的文件。抛开JRE不谈,它主要能干编译和调试两件事。
CAS的全称为Compare-And-Swap,它是一条CPU并发原语。它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。CAS并发原语体现在JAVA语言中就是 sun.misc.Unsafe类中的各个方...
JVM 的内存划分中,有部分区域是线程私有的,有部分是属于整个 JVM 进程;我们将这部分归为一类。
转换器,计算所有类文件在被classLoader加载器,都会回调注册的转换器—inst.addTransformer(new MyMonitor()),可以通过转换器的transform改写类的定义或者给类新增某些定义...
更多类加载器知识点,可以看一下我之前写过关于类加载器的文章: JVM第六卷—类加载机制 JVM第八卷—类加载与执行子系统的案例与实战
我首先提出几个问题,大家先思考一下,如果都可以想出来,说明对类加载器的掌握程度还算不错: