。通过是用Volatile可以实现禁止重排序和变量值线程之间可见两个主要特性。 今天我们从汇编的角度来分析 ...
目录 简介 一个普通的virtual call 普通方法中的null check 反优化的例子 总结 简介 之前我们在讲Virtual call的时候有提到,virtual call方法会根据传递的参数实例的不同而进行优化,从而优化成为classic call,从而提升执行效率。 今天我们考虑一下,在virtual call中执行nullcheck的时候,如果已经知道传递的参数是非空的。JIT会 ...
2020-08-06 07:45 0 1966 推荐指数:
。通过是用Volatile可以实现禁止重排序和变量值线程之间可见两个主要特性。 今天我们从汇编的角度来分析 ...
今天下午写篇博客吧,分析分析c语言中函数调用的本质,首先我们知道c语言中函数的本质就是一段代码,但是给这段代码起了一个名字,这个名字就是他的的这段代码的开始地址 这也是函数名的本质,其实也就是汇编中的标号。下面我们会接触到一些东西 比如 eip 就是我们常常说的程序计数器,还有ebp和esp ...
本人已迁移博客至掘进,以后会在掘进平台更新最新的文章也会有更多的干货,欢迎大家关注!!!https://juejin.im/user/588993965333309 概述 相对Objecti ...
转:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序 ...
Java GC就是JVM记录仪,书画了JVM各个分区的表演。 ## 什么是 Java GC Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出 ...
通过汇编分下值类型的本质。 一、值类型 值类型赋值给var,let或者给参数传参,是直接将所有内容拷贝一份。类似于对文件进行复制粘贴操作,产生了全新的文件副本,属于深拷贝(deep copy)。 示例: 通过上面的示例可以看出,给p2重新赋值确实没有影响到p1的值。 1.1. 内存 ...
1. 字符串生成过程 我们都知道String s = "hello java";会将“hello java”放入字符串常量池,但是从jvm的角度来看字符串和三个常量池有关,class常量池,运行时常量池,全局字符串常量池(也就是常说的字符串常量池) 第一个是class的常量池,看一下 ...
最近在看jvm,发现随着自己对jvm底层的了解,现在对java代码可以说是有了全新的认识。今天就从jvm的角度来看一看以前自以为很了解的单例模式。 了解单例模式的人都知道,单例模式有两种:“饿汉模式”和“懒汉模式”。 引用一段网上对这两种模式的介绍: “饿汉模式的特点是加载类时比较慢 ...