摘要: 1.ThreadLocal是什么 ThreadLocal本地线程变量,线程自带的变量副本(实现了每一个线程副本都有一个专属的本地变量,主要解决的就是让每一个线程绑定自己的值,自己用自己的,不跟别人争抢。通过使用get()和set()方法,获取默认值或将其值更改为当前线程所存的副本的值从而避免了线程安 阅读全文
posted @ 2023-03-16 21:52 冬日寻雾记 阅读(58) 评论(0) 推荐(0)
摘要: 一、对象的内存布局 在HotSpot虚拟机中,对象在堆内存中的存储结构可以分为三个部分,对象头、实例数据和对齐填充 1.对象头 对象头分为 对象标记(Mark Word)和类元信息(类型指针) 对象头里存放着:哈希码、GC标记、GC次数、同步锁标记、偏向锁持有者的信息 那么对象头里怎么存放数据呢 那 阅读全文
posted @ 2023-03-16 21:11 冬日寻雾记 阅读(37) 评论(0) 推荐(0)
摘要: 一、JMM 我们知道Java是一个跨平台的语言,那么Java是如何屏蔽掉各种操作系统、各种机器对内存访问的差异呢? 在JVM规范中,Java定义了一种内存模型,用来屏蔽掉各种硬件和操作系统的内存访问差异 1.JMM中的三大特性 可见性 当一个线程修改了某一个共享变量的值,其他线程能够立即知道该值变更 阅读全文
posted @ 2023-03-16 20:11 冬日寻雾记 阅读(32) 评论(0) 推荐(0)