在 CPU 和主存之间增加缓存,在多线程场景下就可能存在缓存一致性问题,也就是说,在多核 CPU 中,每个核的自己的缓存中,关于同一个数据的缓存...
在 CPU 和主存之间增加缓存,在多线程场景下就可能存在缓存一致性问题,也就是说,在多核 CPU 中,每个核的自己的缓存中,关于同一个数据的缓存...
static static可修饰属性、方法、内部类、代码段static强调的是只有一份,且可改变,但是在原有的地址空间上进行改变。如:stati...
1. volatile简介 synchronized是阻塞式同步,在线程竞争激烈的情况下会升级为重量级锁。而volatile就可以说是java虚...
在需要将对象序列化,但是不想序列化敏感信息时,使用transient关键字对jvm“说”我不想要序列化这个属性,注意transient只能运用在...
常量池 在Java程序中,有很多的东西是永恒的,不会在运行过程中变化。比如一个类的名字,一个类字段的名字/所属类型,一个类方法的名字/返回类型/...
put操作流程图 通过源代码追踪的方式进行学习。 put操作 get操作 remove操作 put操作 1.将值put,在源码中,存在几种情况 ...
IO概览 字节流与字符流的区别字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件...
IO&NIO介绍 NIO中epoll空轮询表现 bug原因 JDK bug列表中有两个相关的bug报告: JDK-6670302 : (se) ...
1. synchronized介绍 在java代码中使用synchronized可以使用在代码块和方法中,根据Synchronized用的位置可...
如果Java内存模型中所有的有序性都仅仅靠volatile和synchronized来完成,那么有一些操作将会变得很烦琐,但是我们在编写Java...