随笔分类 -  JVM

摘要:1、垃圾收集器 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现 。 虽然我们现在对各个垃圾收集器进行比较,但并不是选出一个最好的,因为现在还没有一个最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们只是根据各种场景选择适合自己的垃圾收集器。 1.1 Serial 收集器(- 阅读全文
posted @ 2020-05-25 22:38 风止雨歇 阅读(304) 评论(0) 推荐(0) 编辑
摘要:1、JVM 内存分配与回收 -Xmx:最大堆内存,默认为物理内存的 “1 / 4”; -Xms:初始堆内存,默认为物理内存的 “ 1 / 64”; 1.1 对象优先在 Eden 区分配 大多数情况下,对象在新生代中 Eden 区分配。当 Eden 区没有足够空间进行分配时,虚拟机将发起一次 Mino 阅读全文
posted @ 2020-05-19 21:17 风止雨歇 阅读(577) 评论(0) 推荐(0) 编辑
摘要:一、JVM整体结构和内存模型 上图示例中的代码: public class Math { public static int initData = 666; public static User user = new User(); public int compute() { int a = 1; 阅读全文
posted @ 2020-05-10 23:08 风止雨歇 阅读(621) 评论(1) 推荐(1) 编辑
摘要:1、类加载过程 多个java文件经过编译打包生成可运行jar包,最终由java命令运行某个主类的main函数启动程序,这里首先需要通过类加载器把主类加载到JVM。 主类在运行过程中如果使用到其它类,会逐步加载这些类。 注意:jar包里的类不是一次性全部加载的,是使用到时才加载。 类加载到使用整个过程 阅读全文
posted @ 2020-05-06 21:13 风止雨歇 阅读(328) 评论(1) 推荐(0) 编辑
摘要:堆参数调优 1、堆的结构 JAVA7 堆逻辑上分为:新生区、养老区、永久区;实际上堆只有新生区、养老区; Minor GC:轻量的垃圾回收; Major GC(Full GC):重量级垃圾回收。 Java8 没有永久区了,被元空间取代; 2、堆内存调优 -Xms:设置初始分配大小,默认为物理内存的 阅读全文
posted @ 2018-06-09 14:10 风止雨歇 阅读(693) 评论(0) 推荐(0) 编辑
摘要:JVM运行时数据区 运行时数据区由 程序计数器、java虚拟机栈、本地方法栈、堆、方法区 组成; 1、程序计数器 每一个Java线程都有一个程序计数器,用于保存程序执行到当前方法的哪一个指令,它是线程私有的。 此内存区域是唯一一个在VM Spec中没有规定任何OutOfMemoryError情况的区 阅读全文
posted @ 2018-06-09 10:05 风止雨歇 阅读(227) 评论(0) 推荐(0) 编辑
摘要:一、jvm运行在操作系统之上的,它与硬件没有直接交互; 二、JVM体系结构概览 JVM的基本结构:类加载器、执行引擎、运行时数据区、本地方法接口; 过程:class文件 > 类加载器 > 运行时数据区 > 执行引擎 ,本地接口 > 本地方法库。 1、类加载器ClassLoader: 负责加载clas 阅读全文
posted @ 2018-06-06 23:59 风止雨歇 阅读(367) 评论(0) 推荐(0) 编辑
摘要:1、类加载器(ClassLoader)负责加载class文件,class文件在文件开头有特定的文件标识,并且ClassLoader只负责 class 文件的加载,至于class文件是否能够运行则由Execution Engine决定; 2、类的加载过程 加载class文件 > 连接(验证、准备、解析 阅读全文
posted @ 2018-06-06 23:40 风止雨歇 阅读(214) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示