![](https://img-blog.csdnimg.cn/20200122153234963.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
jvm
文章平均质量分 93
Java 虚拟机
wuyuanshun
这个作者很懒,什么都没留下…
展开
-
java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))
以上代码使用了双重检查锁,但是还是存在线程安全问题,因为可能会出现代码指令重排序。重排序其实出现在字节码层级。在字节码层级Object o=new Object();如果赋值和关联语句发生了代码重排序 ,及两句交换执行。就会出现先把对象关联到o,但是对象还没有初始化赋值。前加 volatile关键字【禁止指令重排序(CPU)】INVOKESPECIAL java/lang/Object. ()V 赋值。NEW java/lang/Object 申请内存。2.禁止指令重排序(CPU)原创 2023-04-12 13:54:27 · 610 阅读 · 0 评论 -
java虚拟机-JVM入门+JVM调优实战+垃圾回收算法+JVM常见参数总结
1.什么是垃圾1)几种语言的申请资源释放资源命令2)java自动内存回收3)垃圾定义2.如何定位垃圾3.垃圾回收算法4.jvm内存分代模型(用于分代垃圾回收算法)5.垃圾回收器1)常见的垃圾回收器2)垃圾回收器演变6.JVM调优第一步,了解生产环境下的垃圾回收器组合7.arthas马士兵JVM全套视频详解C语言申请内存:malloc freejava :new?没任何应用指向的一个对象或者多个对象(循环引用)单个对象没有被使用多个对象循环引用没有被使用。原创 2023-03-14 18:25:21 · 359 阅读 · 1 评论 -
JVM【垃圾回收算法】复制算法
复制算法 在介绍复制算法之前,我们细化一下JVM内存结构。在此之前我们将内存结构分为线程共享区域(方法区、堆)和线程独享区(虚拟机栈、本地方法栈、程序计数器)。细化如下: 堆 新生代 Eden 伊甸园 内存占比80% Survivor 存活区(2个) 内存占比10% Tenured Gen 终身区 老年代 方法区 虚拟机栈 本地方法栈 程序计数器 复制算法具体如下: ...原创 2019-11-02 11:00:17 · 253 阅读 · 0 评论