自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 实际项目中查找频繁FullGC的原因,JVM内存监控,查找OOM的原因。定位内存泄漏的代码

最近项目监控后台总是报:老年代内存使用率监控异常,频繁FullGC,30秒一次FullGC,CPU使用率超过90%,造成系统的性能迅速下降。频繁慢sql。总结一下排查JVM内存问题的过程和使用的工具。1、刚开始发现频繁fullGC,所以查看了GC日志。系统启动之后3天之后第一次fullGC,垃圾回收之后只释放了1600M左右的内存都是新生代的内存,老年代几乎已经满了。之后就开始频繁的Full GC ,几分钟就Full GC一次,最后就是30秒一次Full GC。系统的CPU飙升。当...

2020-05-13 21:26:18 1213

原创 ThreadLocal 的用法

为每一个请求线程 Thread-per-Request 保存当前请求的用户信息userInfo。 在程序的任何地点 拿到的userInfo 都是 同一个请求用户。 需要将 用户信息保存在 线程私有的 ThreadLocal中。 在并发情况下不会产生 线程同步问题。public class UserInfo { private static InheritableThreadLocal<User> tokenPool = new Inhe...

2020-12-10 20:51:07 102

原创 本地jvm启动参数

设置项目启动参数:-Xms20m-Xmx20m-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=./run/dump/heapdump.hprof-XX:GCLogFileSize=32m-Xloggc:./run/gc/gc.log.202012041557dump文件和 GC日志文件 路径在 运行的项目web包内,可以自动生成文件,不能生成文件夹使用 eclipse Memory Analyzer ...

2020-12-07 21:50:03 326

原创 解决jar包冲突教程,使用maven Helper插件

最近同事给我推荐了一个开源的excel解析工具EasyPOI ,maven 如下: <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> <version>4.2.0</version></dependency&g...

2020-11-01 20:34:37 1200

原创 Java 反射机制与动态代理的两种实现方式

谈谈java反射机制: java反射机制是一种程序运行时自省的机制,提供了在程序运行时动态的操作任何对象的属性和方法的能力。这样不同创建对象,就可以直接调用其中的任意方法。或者动态的获取某个对象的任意属性。而不用在代码中显示的操作属性,增加的程序的灵活性。JAVA反射API: 1、Class类获取Class对象的方法有 2、Field类 :* @see java.lang.Class#getFields()* @see java....

2020-05-14 22:20:53 391

原创 理解 Java 的字符串,String、StringBuffer、StringBuilder 有什么区别?

1、String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。2、StringBuffer 是为解决上面提到拼接产生太多中间对象的问题而提供的一个类,我们可以用 append 或者 add 方法,把字符串添加到已有序列的末

2020-05-11 21:33:47 121

原创 强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么?

不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。1、所谓强引用(“Strong” Reference),就是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,垃圾收集器不会碰这种对象。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相应(强)引用赋值为 null,就是可以被垃圾收集的了,当然具体回收时机还是要看垃圾收集策略。2、软引用(Soft Reference),是一种相对强引用弱化一些的引用,可

2020-05-11 20:45:06 131

原创 Exception和Error有什么区别,常见的Exception与Error

Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类。Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。Error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序(比如 JVM 自身)处于非正常的

2020-05-08 22:07:49 514

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除