jvm
Super_Sloppy
圈圈1779487488,欢迎交流
展开
-
JVM笔记-高效并发(三)
1.内存模型与线程8种内存模型基本操作:lock、unlock、read、load、assign、use、store、writevolatile关键字(重要)可见性,一个线程修改这个变量的值,新值对于其他变量来说是可以立即得知的。因为java运算不是原子操作,所以在并发下是不安全的,取值的时候能保证正确,但是在计算时,可能有其他线程把它修改了禁止指令重排序优化,前面的指令全部完成了才能执行后面的指令,相当于一个屏障。long和double类型变量的特殊规则long和doubl原创 2020-07-21 15:32:21 · 183 阅读 · 0 评论 -
JVM笔记-类加载机制(二)
1.类加载时机有且只有5种情况必须立即对类进行“初始化”①遇到new、getstatic、putstatic、invokestatic字节码,(被final修饰放入常量池的除外)②使用java.lang.reflect包的方法对类进行反射调用的时候③初始化一个类,发现其父类还未初始化,则先初始化父类④虚拟机启动时,先初始化主类⑤jdk1.7动态语言支持,java.lang.invoke.MethodHandle实例解析结果的方法句柄对应的应先初始化2.类加载过程加载...原创 2020-07-20 11:47:25 · 186 阅读 · 0 评论 -
JVM笔记-自动内存管理机制(一)
1.运行时数据区域程序计数器:改变该值来选取下一条执行的字节码指令这是此内存趋于唯一一个不会OutOfMemoryError的区域虚拟机栈:用于存储局部变量表、操作数栈、动态链接、方法出口等信息本地方法栈:存储Native方法堆:存放对象实例,也是垃圾回收的主要区域方法区:也称为老年代,存储已加载的类信息、常量、静态变量等。该区域GC可实现也可不实现,GC效率低对象的访问定位通过栈上的reference来操作堆上的具体对象有两种主流的访问方式:①使用句柄②直.原创 2020-07-18 18:53:23 · 193 阅读 · 0 评论