摘要:
(Spring源码中用到的设计模式) 文中代码多是用于解释的伪代码,类图排版因为工具原因没有细细打磨,凑合用了。 耗时两周研究了这些设计模式,个人总结一下学习设计模式应该注意这些东西: 相关的OO(面向对象) 设计原则 首先搞清楚该模式的应用场景这非常重要 搞清楚类似设计模式的核心差异,个人认为这个 阅读全文
摘要:
(记录一次JVM调优实战) 一、问题分析思路 1.考虑一个问题现象,系统刚启动在访问量比较小的时候运行流畅,随着访问量提高,开始卡顿; 2.可以先排查数据库问题,例如Oracle可以检查临时表空间,慢sql统计,索引等等因素,如果依然无法解决; 3.最终再考虑JVM调优,正常情况下是不需要JVM调优 阅读全文
摘要:
目录概述一、内存模型物理机内存模型Java内存模型Java内存模型中有如下的规定:操作二、Volatile变量volatile修改变量后保证所有线程对其可见性volatile禁止指令重排序Java内存模型关于volatile变量的特殊规则及其意义 概述 今天的主角是volatile变量,在讲它之前我 阅读全文
摘要:
(调优案例以及策略:笔记) 一、操作文档类功能,大量大对象直接进入老年代 问题现象 操作文档类功能,大量大对象直接进入老年代,没有在Minor GC时被清理,导致老年代迅速消耗殆尽频繁进行Full GC,在服务器内存较大的情况下,Full GC会造成长时间停顿。 解决方法 通过单一Java虚拟机管理 阅读全文
摘要:
目录问题排查问题经过了如下的过程:排除是否数据库卡顿造成任务管理器与客户沟通至此开始通过JVM排查问题:JVM参数介绍第一次Full GC第二次Full GC截图第三次Full GC 截图直至开始出现异常的Full GC如下是第6次Full GC,这次Full GC实际耗时1.94秒,异常它来了。第 阅读全文
摘要:
(调优工具、指令) JVM 调优的概念 调优的前提是发现问题,然后通过工具定位问题并实地分析问题,最后根据问题现象选用最合适的策略优化 / 解决 问题;JVM调优的工具很多,有jdk自带的工具,例如:jvisualvm、jconsole;也有第三方的:eclipse附带的内存分析工具MAT、专业分析 阅读全文
摘要:
@目录1、什么是类的加载2、类加载的过程加载连接验证文件格式验证元数据验证字节码验证符号引用验证准备解析:类或接口的解析字段解析类方法解析接口方法解析初始化结束生命周期3、类加载器类与类的加载器类加载器双亲委派模型双亲委派机制JVM类加载机制4、类的加载5、自定义类加载器 1、什么是类的加载 Jav 阅读全文
摘要:
@目录一、概述二、判断对象是否需要被回收方式1.引用计数法:2.可达性分析法:三、垃圾收集算法1.分代收集理论基础2.标记-清除算法3.复制-收集算法4.标记-压缩(整理)算法5.分代收集四、垃圾收集器1.Serial 收集器2.ParNew 收集器3.Parallel Scavenge 收集器4. 阅读全文
摘要:
1、程序计数器(Program Counter Register) 线程独有,每个线程都有自己的计数器;由于CPU的任意时刻只能执行所有线程中的一条,所以需要使用程序计数器来支持JVM的并发;另外字节码解释器读取下一行指令、分支、循环、跳转、异常处理等等逻辑都依赖于程序计数器。程序计数器是JVM 阅读全文