利用 CAS 锁附带的 volatile 读和写的内存语义。为什么CAS附带了volatile的读和写的内存语义呢?看书没看懂,博主知道吗?
并发编程笔记(三):Java 内存模型(二)并发系列的文章都是根据阅读《Java 并发编程的艺术》这本书总结而来,想更深入学习的同学可以自行购买此书进行学习。 一 锁的内存语义 众所周知,锁可以让临界区互斥执行。但锁的...
ReentrantLock 和 Atomic类都使用了CAS机制,大量同步代码执行时间必然长,cas会过多的占用cpu资源。synchronized当变成重量级锁的时候就直接...
主要是通过spring的InitializingBean接口的afterPropertiesSet()方法 这个例子只是一个思想,感觉没有实际的用途。 主要是通过spring...
serial parNew CMS 1.初始标记 2.并发标记 3.重新标记 4.并发清除 优缺点 parallel Scavenge serial old parallel...
大对象直接进入老年代 Minor GC的规则 大对象直接进入老年代 -XX:PretenureSizeThreshold 指定大于该数值的对象直接进入老年代,避免在新生代的E...
JVM是什么jvm和Java的关系 JVM是什么 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器...
什么是跨域? 解决1: 解决2: 解决3: 解决4: 什么是跨域? 跨域就是浏览器的同源策略导致的,同源策略:协议+域名+端口,只要有一个不同,就不是同源。 当前端部署在Ng...
@ControllerAdvice注解是什么? 结合@ExceptionHandler做全局异常处理 结合@ModelAttribute做请求controller之前的操作 ...
字符串判断是否为空 hasText hasLength notNull notEmpty notNull or notEnoty 字符串判断是否为空 hasText Stri...
Elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml。第一个是es的基本配置文件,第二个是日志配置文件...
[toc] 启动程序需要添加的参数 -Dcom.sun.management.jmxremote jps [options] [hostid] 可以列出正在运行的虚拟机,以及...
[toc] serial 新生代的垃圾收集器,很古老,只有单线程,且不能和用户线程同时运行。但是在有限的内存空间,程序不大的情况下还是可以用的,适合桌面应用,但是现在几乎不用...
GC之前需要根节点枚举和查找引用链,查找引用链已经可以和用户线程并发进行,但是根节点枚举还是需要用户线程暂停,用户线程暂停之后不需要查找整个上下文和全局的引用位置去获取根节点...
可达性分析中的跨区引用是使用记忆集解决的,在hotspot中记忆集是用卡表来实现的,记忆集可以理解为只记录老年代中哪一部分存在着跨区引用的对象,这个部分也就是区分粒度问题了,...
# 弱分代假说 绝大多数对象都是朝生夕灭的(新生代) # 强分代假说 熬过越多次垃圾收集的对象就越难消亡(老年代) 这两条假说结合jvm堆内存结构来理解: 新生代就是为刚生成...
前提jvm栈结构a++++a 前提 一日,王者峡谷深处,一阵躁动,只见一孩童脚穿AJ,头顶阿玛尼,身着爱马仕,肩挎古驰,手持乐高玩具手枪,口中时不时呢喃到:“检测了对面的智商...
前言 没啥子前言,就是之前写的一篇String笔记被别人夸了一下,然后发现自己写的有些地方是错了,所以好好整了一篇,还想体验一下被夸的滋味。 环境 jdk1.8.0_171 ...