![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 93
JYY_JYY_
这个作者很懒,什么都没留下…
展开
-
深入理解java虚拟机5——高效并发
6.1Java内存模型缓存一致性(Cache Coherence) JAVA内存模型JMM6.2 线程Java线程的实现6.3 线程安全与锁优化6.1.1 缓存一致性概念:在多核处理器中,每个核(处理器)有自己的高速缓存,所有高速缓存共享同一主内存 存在的问题:当多个核处理主内存中的同一块区域时,会引起并发问题 解决方法:缓存一致性协议,如MSI,MESI(常用),MOSI等 即用协议和规则,够保证各个缓存之间和主内存之间的正确性,不会存在脏数据,不一致等问题 强..原创 2021-01-14 14:51:53 · 150 阅读 · 0 评论 -
深入理解java虚拟机——笔记提纲
本文是对于深入理解java虚拟机的笔记和提纲整理主要用于复习和知识点快速复习第二章:内存结构笔记:https://blog.csdn.net/qq_41157876/article/details/1071893952.1 内存结构方法区 栈 堆 本地方法栈 程序计数器2.2 直接内存2.3 对象创建过程2.4 对象内存布局第三章:垃圾回收笔记:https://blog.csdn.net/qq_41157876/article/details/10774.原创 2020-10-22 04:57:18 · 201 阅读 · 0 评论 -
深入理解java虚拟机1——内存结构
第二章2.2 内存结构 1.方法区 它用于存储已被虚拟机加载 的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据 运行时常量池:Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池表(Constant Pool Table),用于存放编译期生 成的各种字面量与符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。 当常量池无法再申请到内存 时会抛出OutOfMemoryError异常 共享原创 2020-08-02 17:39:10 · 488 阅读 · 0 评论 -
深入理解java虚拟机4——前端与后端优化
1.前端优化(编译期优化)——语法糖1.1 语法糖所谓语法糖,就是java编译器把*.java编译成*.class过程中,自动生成和转换的代码1.1.1 泛型jdk5之后加入:java在编译后会进行 泛型擦除的动作,即泛型信息丢失,都当作Object来处理泛型擦除后无数的拆箱装箱导致泛型慢但是,泛型擦除只擦除Code方法表内的信息,在LocalVariableTypeTable中,这些泛型信息仍然会被保留因此,想要获得泛型信息,可以通过反射的方式获得getGenericPa.原创 2020-08-08 20:52:19 · 90 阅读 · 1 评论 -
深入理解java虚拟机3——类加载
1.Java运行流程编译期:*.java-->*.class(字节码文件)运行期:由JVM运行.class文件,将.class文件加载到内存(其中包括选择类加载器)1.Class类文件结构2.字节码指令原创 2020-08-07 23:09:48 · 266 阅读 · 0 评论 -
深入理解java虚拟机2——垃圾回收
1.判断对象是否可以被回收1.1 引用计数算法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;优点:原理简单,判定效率很高。缺点:两个对象相互引用对方,但都不再被访问,则无法回收。1.2 可达性分析算法这个算法的基本思路就是通过 一系列称为"GC Roots"的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过 程所走过的路径称为“引用链”(Reference Chain),如果某个对象到GC Roots间没有任何原创 2020-08-03 20:41:18 · 157 阅读 · 1 评论