
JVM
Adonis_D_Gogh
湖畔路打字员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
转:JVM 线上故障排查基本操作
前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢? 首先,出现问题,肯定要先定位问题所在,然后分析问题原因,再然后解决问题,最后进行总结,防止下次再次出现。 今天的文章,就如我们的题目一样,讲的是基本操作,也就是一些排查线上问题的基本方...转载 2019-10-25 10:03:51 · 293 阅读 · 0 评论 -
JVM学习 之 Class类文件结构
Class文件格式u1代表1个字节,class文件是一组以8位字节为基础单位的二进制流。类型名称数量u4magic1u2minor_version1u2major_version1u2constant_pool_count1cp_infoconstant_poolconstant_pool_count - 1u2access_flags1u2this_class1u2super_class1u2i...原创 2018-03-20 15:57:19 · 300 阅读 · 0 评论 -
volatile内部实现机制理解
在学习内存模型与线程的时候看到这样一句话: “线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。对于volatile这个特殊情况也不例外。” 于是根据这句话来了解volatile的内部机制。 被volatile修饰的共享变量在编译后,我们可以在汇编语言中看到一个lock指令,这其实就是内存屏障。当CPU识别到这个指令就会立刻将当前内核的高速缓存回写到主内存,并且...原创 2019-08-01 11:13:02 · 209 阅读 · 0 评论 -
Java堆栈跟踪工具
利用Thymeleaf在浏览器查看线程堆栈 1、目录结构: 2、application.properties spring.thymeleaf.cache=false spring.thymeleaf.prefix=classpath:/view/ 3、pom <dependency> <groupId>org.springframework.b...原创 2019-08-20 17:01:02 · 871 阅读 · 0 评论 -
从字节码分析i = i++ 与 i = ++i 的区别
从两段代码分析i++ 与 ++i 的区别 public static void test1() { int i = 0; for (int j = 0; j < 10; j++) i = i++; System.out.println(i); } 输出结果 0 public static void test2() { int i ...原创 2019-10-08 21:09:46 · 421 阅读 · 0 评论