![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
Adonis_D_Gogh
湖畔路打字员
展开
-
转:JVM 线上故障排查基本操作
前言对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢?首先,出现问题,肯定要先定位问题所在,然后分析问题原因,再然后解决问题,最后进行总结,防止下次再次出现。今天的文章,就如我们的题目一样,讲的是基本操作,也就是一些排查线上问题的基本方...转载 2019-10-25 10:03:51 · 213 阅读 · 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 · 246 阅读 · 0 评论 -
volatile内部实现机制理解
在学习内存模型与线程的时候看到这样一句话:“线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。对于volatile这个特殊情况也不例外。”于是根据这句话来了解volatile的内部机制。被volatile修饰的共享变量在编译后,我们可以在汇编语言中看到一个lock指令,这其实就是内存屏障。当CPU识别到这个指令就会立刻将当前内核的高速缓存回写到主内存,并且...原创 2019-08-01 11:13:02 · 156 阅读 · 0 评论 -
Java堆栈跟踪工具
利用Thymeleaf在浏览器查看线程堆栈1、目录结构:2、application.propertiesspring.thymeleaf.cache=false spring.thymeleaf.prefix=classpath:/view/3、pom<dependency> <groupId>org.springframework.b...原创 2019-08-20 17:01:02 · 757 阅读 · 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);}输出结果 0public static void test2() { int i ...原创 2019-10-08 21:09:46 · 359 阅读 · 0 评论