fastjson 指定系列化格式
摘要:public static void main(String[] args) { List<User> list = new ArrayList<>(); list.add(new User(1,"11","11")); list.add(new User(2,"22","22")); list.a
阅读全文
垃圾回收算法- 三色标记
摘要:GC目前的问题是,会暂停、阻碍代码的运行,即stop the world。增量式GC处理的就是这个问题。将GC变得可一阶段一阶段进行。 分阶段运行的思路并不难,但具体要解决的问题其实是分阶段GC后,如何保证下次继续时,中断过程中引用关系的变化不会对GC造成影响。 三色标记法是一个逻辑上的抽象(物理上
阅读全文
JVM -- Full GC触发条件总结以及解决策略
摘要:前言 Full GC相对于Minor GC来说,停止用户线程的STW(stop the world)时间过长,至少慢10倍以上,所以要尽量避免,首先说一下Full GC可能产生的原因,接着给出排查方法以及解决策略。 1、System.gc()方法的调用 在代码中调用System.gc()方法会建议J
阅读全文
JVM深入解析
摘要:java 运行时数据区 java虚拟机在执行java程序的过程中会将其管理的内存划分为若干个不同的数据区域 ,这些区域有各自的用途、创建和销毁的时间,有些区域岁虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。java虚拟机锁管理的内存包括以下结果运行时数据区域,如图: 1、
阅读全文
JVM系列(四)之GC调优
摘要:JVM内存参数调优 为什么要GC调优? 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但当你的系统时常报了内存溢出或者java程序运行缓慢时,优先排查是否是程序导致的内存泄漏,再看你是否需要JVM参数调优。 想一下进行
阅读全文
JVM系列(三)之GC
摘要:什么是GC Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清
阅读全文
JVM系列(二)之类加载
摘要:什么是类的加载 类加载是指将源代码编译后的.class加载到内存中初始化待程序使用的过程,类加载的最终结果就是将.class字节码加载到JVM中生成一个java.lang.Class对象,提供给程序使用的访问入口。 类加载的过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:
阅读全文
jvm系列(一)之内存模型
摘要:JVM内存结构 Java内存模型是指Java虚拟机的内存模型,我们来看下Java内存模型的图片: VM内存模型主要分为三块:Java 堆内存(Heap)、方法区(Non-Heap)、JMV栈(JVM Stack)、本地方法栈(Native Method Stacks)、程序计数器(Program C
阅读全文