JVM
文章平均质量分 52
17号技师
这个作者很懒,什么都没留下…
展开
-
JVM可视化监控
prometheus + jmx_exporter + grafana前面已经安装了prometheus + grafanajmx_exporter 地址使用下载jar以前启动一个jar包java -jar yourJar.jar现在启动一个jarjava -javaagent:./jmx_prometheus_javaagent-0.14.0.jar=8080:config.yaml -jar yourJar.jarconfig.yaml 可以参考---lowercas原创 2021-01-04 17:11:15 · 242 阅读 · 0 评论 -
JVM学习笔记之十(synchronized)
5. synchronized 优化Java HotSpot 虚拟机中,每个对象都有对象头(包括 class 指针和 Mark Word)。Mark Word 平时存储这个对象的 哈希码、分代年龄,当加锁时,这些信息就根据情况被替换为 标记位、线程锁记录指针、重量级锁指针、线程ID 等内容对象头存储内容图例,引用|---------------------------------...原创 2020-05-01 15:14:51 · 141 阅读 · 0 评论 -
JVM学习笔记之九(CAS)
4. CAS 与原子操作4.1 CASCAS 即 Compare and Swap ,它体现的一种乐观锁的思想,比如多个线程要对一个共享的整型变量执行 +1 操作:public class Main { public static void main(String[] args) { // 需要不断尝试 while (true) { ...原创 2020-05-01 12:11:44 · 234 阅读 · 0 评论 -
JVM学习笔记之八(JMM)
内存模型(JMM)原创 2020-05-01 10:56:42 · 145 阅读 · 0 评论 -
JVM学习笔记之七
6. 运行期优化6.1 即时编译分层编译(TieredCompilation)先看看一个例子public class JIT1 { public static void main(String[] args) { for (int i = 0; i < 200; i++) { long star = System.nanoTime(...原创 2020-04-25 21:47:32 · 190 阅读 · 0 评论 -
JVM学习笔记之六
5. 类加载器以 JDK 8 为例Bootstrap ClassLoader 启动类加载器Extension ClassLoader扩展类加载器Application ClassLoader应用程序类加载器5.1 启动类加载器(Bootstrap ClassLoader )public class F { static { System.out.pri...原创 2020-04-25 17:11:35 · 114 阅读 · 0 评论 -
JVM学习笔记之五
4. 类加载阶段4.1 加载将类的字节码载入方法区中,内部采用C++的instanceKlass描述java类,它的重要field有:_java_mirror即 java 的类镜像,例如对 String 来说,就是 String.class,作用是把 klass 暴露给 java 使用_super 即父类_methods 即方法constants 即常量池class_load...原创 2020-04-25 11:08:11 · 297 阅读 · 0 评论 -
JVM学习笔记之四
02_07异常处理public class Demo17 { public static void main(String[] args) { Object lock = new Object(); synchronized (lock){ System.out.println("ok"); } }}=...原创 2020-04-24 22:33:42 · 134 阅读 · 0 评论 -
JVM学习笔记之三
02字节码指令02_01字节码指令-init字节码指令-main02_02javap使用public class HelloWorld{ public static void main(String[] args) { System.out.println("HelloWorld"); }}D:\jvm\out\production\view...原创 2020-04-23 11:37:26 · 311 阅读 · 0 评论 -
JVM学习笔记之二
JVM学习笔记4 GC调优掌握GC相关的JVM参数,会基本的空间调整掌握相关工具重点:调优与应用和环境有关,没有统一的规则查看虚拟机运行参数“jdk下bin目录下java命令的绝对地址” -XX:+PrintFlagFinal -version | findstr “GC”我的是 “E:\Java\jdk1.8.0_191\bin\java” -XX:+PrintFlagsFin...转载 2020-04-22 21:21:29 · 183 阅读 · 0 评论 -
JVM学习笔记之一
1_介绍01_什么是JVM定义:java virtual meachine -java运行时环境(java二进制字节码的运行环境)。好处:一次编写到处运行自动内存管理,垃圾回收数组下标越界检查多态比较:02_学习JVM有什么用?面试理解底层原理中高级程序员必备技能03_常见的JVM04_学习路线2_内存结构01_程序计数器(线程私有)定义: Progr...转载 2020-04-18 12:14:56 · 406 阅读 · 0 评论 -
JVM调试、查看工具
jpsjmap -heapjconsoletop 跟 jstact合用jvisualvmjavap -v Main2.class(反编译)原创 2020-04-14 23:49:51 · 93 阅读 · 0 评论 -
禁止延迟开启偏向锁jvm参数
jdk6默认开启偏向锁,但是是输入延时开启,也就是说,程序刚启动创建的对象是不会开启偏向锁的,几秒后后创建的对象才会开启偏向锁的-XX:BiasedLockingStartupDelay=0验证引入依赖包<!--可以查看mark word--> <!-- https://mvnrepository.com/artifact/org.openjdk.j...原创 2020-03-14 20:51:13 · 3290 阅读 · 15 评论