
JVM
文章平均质量分 95
JVM学习
大·风
想起来什么就写点什么。
展开
-
JVM性能——垃圾回收器的优化策略
简单介绍下回收器优化策略原创 2022-11-02 01:13:11 · 1072 阅读 · 0 评论 -
JVM性能——JVM调优参数列表
介绍在进行JVM GC优化的时候可能用到的参数原创 2022-11-02 00:50:00 · 587 阅读 · 0 评论 -
JVM性能——垃圾回收器的介绍
简单介绍下JDK8的回收器,聊聊用哪种回收器会好些原创 2022-11-01 23:48:48 · 946 阅读 · 0 评论 -
JVM性能——开启回收日志和实时查看GC信息
如何开启GC日志和分析日志原创 2022-11-01 23:41:38 · 6211 阅读 · 0 评论 -
JVM学习——5.2 并发支持-锁优化
线程安全java语言中的线程安全如果一段代码根本不会与其他线程共享数据,那么从线程安全的角度来看,程序是串行执行还是多线程执行对它来说都是安全的。在java涉及中数据状态可能存在五种状态:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。不可变不可变(Immutable)的对象一定是线程安全的,无论是对象的方法实现还是方法的调用者,都不需要再采取任何的线程安全保障措施,如...原创 2019-07-13 23:51:56 · 164 阅读 · 0 评论 -
JVM学习——5.1 并发支持-线程安全
JAVA内存模型与线程Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果主内存与工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。为了获得较好的执行效能,Java内存...原创 2019-07-10 23:12:06 · 240 阅读 · 0 评论 -
JVM学习——4.2 类加载-类执行
JAVA内存模型与线程Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果主内存与工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。为了获得较好的执行效能,Java内存...原创 2019-07-09 00:06:27 · 162 阅读 · 0 评论 -
JVM学习——4.1 类加载-类加载顺序
类的加载的生命周期类被加载到虚拟机内存中到卸载出内存中主要经历几个步骤:加载、验证、准备、解析、初始化、使用、卸载类加载的步骤的顺序图目前可以确定的顺序是:加载、验证、准备、初始化、卸载。解析的时候为了支持Java语言的运行时绑定,所以在某些情况下可能存在先初始化再进行解析。类加载的时机的大概节点遇到new、getstatic、putstatic或invokestatic这4条字...原创 2019-07-08 01:33:29 · 1410 阅读 · 1 评论 -
JVM学习——3.3 垃圾清理-内存分配
JVM内存管理通常我们说JVM说的自动内存管理主要包含:自动化解决给对象分配内存以及自动化的回收分配给对象的内存。之前学习过垃圾回收算法以及运行原理,现在来学习对象内存分配。对象的内存分配,主要介绍的是在堆上进行内存分配。对象的最开始主要分配在新生代的Eden区上。如果启动本地线程分配缓冲,线程优先分配在TLAB上。少数直接分配在老年代中对象优先在Eden分配大多数情况下,...原创 2019-07-07 17:17:16 · 191 阅读 · 0 评论 -
JVM学习——3.2 垃圾清理-垃圾收集器
垃圾收集器垃圾收集器是收集算法的具体实现。不同的垃圾收集器之间使用的收集策略会有很大差别垃圾收集器类型在这里先解释两个名词:并发和并行并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾收集程序运行于另一个CPU上S...原创 2019-07-07 17:16:08 · 184 阅读 · 0 评论 -
JVM学习——3.1 垃圾清理-垃圾回收算法
垃圾回收算法当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节之前一篇我们知道JVM管理的内存被分为程序计数器、虚拟机栈、本地方法栈和Java堆还有方法区(JDK1.8之前)。而程序计数器、虚拟机栈、本地方法栈随着方法或者线程的结束,所使用的内存被系统回收,但是Java堆却不是这样,这部分内存的分配和回收都...原创 2019-07-04 00:00:28 · 227 阅读 · 0 评论 -
JVM学习——2.1 JVM运行时数据区域
JVM数据区域关于JVM运行的时候对内存的划分因为不同的虚拟机可能会有略微差异,甚至因为JDK版本的不同也会有差异。但是总体的结构差别不大。只有了解了JVM对内存的使用,才能出现内存泄漏或者溢出的情况下尽快排查出问题。程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。JAVA代码编译后的字节码在未经过JIT(实时编译器)编译前,其执行方式是通...原创 2019-07-02 00:22:22 · 180 阅读 · 0 评论 -
JVM学习——1 JAVA的发展
从这篇开始,后面几篇文章开始学习JVM相关内容。JVM的技术所需要关注的JVM技术从虚拟机到类加载,到硬件支持有许多很重要的知识点,因为内容太过复杂,所以本次学习只能针对其中一些内容进行学习。主要是针对平时面试中被关注最多的几个地方JVM的数据区域垃圾回收垃圾回收的算法垃圾回收收集器垃圾回收内存分配策略类运行类加载顺序类执行顺序并发支持JAVA内存模型...原创 2019-07-02 00:20:30 · 238 阅读 · 0 评论 -
JAVA类加载的过程
最近肝代码肝的有点头疼,随便写点简单的东西吧。类的加载要想去理解类的加载的过程,我们就需要关注。JVM数据分配的设计、类加载过过程。它们觉得了类不同操作下加载不同的内容,以及谁先加载谁后加载的内容。类加载的内容要想去理解类的加载机制,就要先了解JVM数据分配的设计。在之前JVM运行时数据区域中可以知道。JVM为类分配了(Java堆,方法区(1.8之后使用元空间))。两者都保存了类的信...原创 2019-08-16 23:37:45 · 576 阅读 · 1 评论