JVM成神之路
文章平均质量分 74
carl的分享笔记
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM成神之路(十三) -- JVM常见问题剖析
4.4常见问题(1)内存泄漏与内存溢出的区别内存泄漏是指不再使用的对象无法得到及时的回收,持续占用内存空间,从而造成内存空间的浪费。内存泄漏很容易导致内存溢出,但内存溢出不一定是内存泄漏导致的。(2)young gc会有stw吗?不管什么 GC,都会发送 stop-the-world,区别是发生的时间长短。而这个时间跟垃圾收集器又有关系,Serial、PartNew、Parallel Scavenge 收集器无论是串行还是并行,都会挂起用户线程,而 CMS和 G1 在并发标记时,是不会挂起用原创 2021-08-16 17:25:46 · 3635 阅读 · 0 评论 -
JVM成神之路(十二) -- Jvm性能优化指南
# 性能优化JVM的性能优化可以分为代码层面和非代码层面。在代码层面,大家可以结合字节码指令进行优化,比如一个循环语句,可以将循环不相关的代码提取到循环体之外,这样在字节码层面就不需要重复执行这些代码了。在非代码层面,一般情况可以从内存、gc以及cpu占用率等方面进行优化。注意,JVM调优是一个漫长和复杂的过程,而在很多情况下,JVM是不需要优化的,因为JVM本身已经做了很多的内部优化操作。那今天我们就从内存、gc以及cpu这3个方面和大家一起探讨一下JVM的优化,但是大家要注意的是不要为了调优原创 2021-08-16 17:23:09 · 3759 阅读 · 1 评论 -
JVM成神之路(十一) -- JVM常用命令解析
3.2 常用命令3.2.1 jps查看java进程The jps command lists the instrumented Java HotSpot VMs on the target system. The command is limited to reporting information on JVMs for which it has the access permissions.3.2.2 jinfo(1)实时查看和调整JVM配置参数The jinfo command原创 2021-08-16 17:15:25 · 21030 阅读 · 6 评论 -
JVM成神之路(十) -- JVM常见参数详解
3.1 JVM参数经过前面的各种分析学习,我们知道了关于JVM很多的知识,比如版本信息,类加载,堆,方法区,垃圾回收等,但是总觉得心里不踏实,原因是没看到实际的一些东西。所以这一章节,咱们就好好来聊一聊关于怎么将这些内容进行直观地展示在我们面前,包括怎么进行相应的一些设置。OK,let’s go!3.1.1 标准参数(以-开头)-version-help-server-cp3.1.2 非标准参数也就是在JDK各个版本中可能会变动X参数(以-X开头)-Xint 解释执原创 2021-08-16 16:43:02 · 3913 阅读 · 0 评论 -
JVM成神之路(九) -- 垃圾回收常见面试题
GC常见面试问题9.1 垃圾收集器分类串行收集器->Serial和Serial Old只能有一个垃圾回收线程执行,用户线程暂停。适用于内存比较小的嵌入式设备。并行收集器[吞吐量优先]->Parallel Scanvenge、Parallel Old多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。适用于科学计算、后台处理等若交互场景。并发收集器[停顿时间优先]->CMS、G1用户线程和垃圾收集线程同时执行(但并不一定是并行的,可能是交替执行的),垃圾收原创 2021-08-16 16:40:29 · 3663 阅读 · 0 评论 -
JVM成神之路(八) -- 垃圾收集器深入解析
2.5.5 垃圾收集器如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。2.5.5.1 SerialSerial收集器是最基本、发展历史最悠久的收集器,曾经(在JDK1.3.1之前)是虚拟机新生代收集的唯一选择。它是一种单线程收集器,不仅仅意味着它只会使用一个CPU或者一条收集线程去完成垃圾收集工作,更重要的是其在进行垃圾收集的时候需要暂停其他线程。优点:简单高效,拥有很高的单线程收集效率缺点:收集过程需要暂停所有线程算法:复制算法适用范围:新生代应用:Clie原创 2021-08-16 16:23:06 · 968 阅读 · 0 评论 -
JVM成神之路(七) -- 垃圾回收算法
2.5 Garbage Collect(垃圾回收)之前说堆内存中有垃圾回收,比如Young区的Minor GC,Old区的Major GC,Young区和Old区的Full GC。但是对于一个对象而言,怎么确定它是垃圾?是否需要被回收?怎样对它进行回收?等等这些问题我们还需要详细探索。因为Java是自动做内存管理和垃圾回收的,如果不了解垃圾回收的各方面知识,一旦出现问题我们很难进行排查和解决,自动垃圾回收机制就是寻找Java堆中的对象,并对对象进行分类判别,寻找出正在使用的对象和已经不会使用原创 2021-08-16 16:19:26 · 1335 阅读 · 0 评论 -
JVM成神之路(六) -- 各种内存溢出详解
各种内存溢出详解(附代码)在我们开发过程中,经常会遇到各种各样的内存溢出的情况,所以,我在此准备了几个Demo。以此来验证一下。2.4.5.2 堆内存溢出代码@RestControllerpublic class HeapController { List<Person> list=new ArrayList<Person>(); @GetMapping("/heap") public String heap(){ while(t原创 2021-08-16 16:16:35 · 3683 阅读 · 0 评论 -
JVM成神之路(五)-- 内存模型与对象创建过程
5.1 栈指向堆如果在栈帧中有一个变量,类型为引用类型,比如Object obj=new Object(),这时候就是典型的栈中元素指向堆中的对象。5.2 方法区指向堆方法区中会存放静态变量,常量等数据。如果是下面这种情况,就是典型的方法区中元素指向堆中的对象。private static Object obj=new Object();5.3 堆指向方法区What?堆还能指向方法区?注意,方法区中会包含类的信息,堆中会有对象,那怎么知道对象是哪个类创建的呢?思考:一个对象怎么原创 2021-08-16 16:09:23 · 3453 阅读 · 0 评论 -
JVM成神之路(四)--运行数据区与栈帧结构
2.3 运行时数据区(Run-Time Data Areas)在装载阶段的第(2),(3)步可以发现有运行时数据,堆,方法区等名词(2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构(3)在Java堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口说白了就是类文件被类装载器装载进来之后,类中的内容(比如变量,常量,方法,对象等这些数据得要有个去处,也就是要存储起来,存储的位置肯定是在JVM中有对应的空间)2.3.1 官网概括官网:http原创 2021-08-14 16:26:27 · 3737 阅读 · 3 评论 -
JVM成神之路(三)--类加载机制以及类加载器
关于文章JVM系列每一篇文章我都录制了对应的视频,由于优快云不能直接发送视频资料,如果想要作者录制的免费视频资料,可以加QQ:3139882589。这个是作者QQ,如果有问题想跟作者咨询,也可以加到我们的java技术交流QQ群。加作者请备注暗号 [优快云]类加载机制类加载机制本质上就是虚拟机把Class文件加载到内存,并对数据进行校验,转换解析和初始化,形成可以虚拟机直接使用的Java类型,即java.lang.Class。同样,我们去官网查看下,还是JDK8版本我们可以看见Loading原创 2021-08-14 16:05:19 · 4042 阅读 · 4 评论 -
JVM成神之路(二)-- JDK,JER与JVM的关系
关于文章JVM系列每一篇文章我都录制了对应的视频,由于优快云不能直接发送视频资料,如果想要作者录制的免费视频资料,可以加QQ:3139882589。这个是作者QQ,如果有问题想跟作者咨询,也可以加到我们的java技术交流QQ群。加作者请备注暗号 [优快云]初识JVM我们从这篇文章开始就要正式开始学习JVM了,我们学习一个知识,肯定首先要去最权威的地方进行学习,所以我们学习的节奏是跟着官网来进行学习,同时我们学习的是主流的JDK8这样的一个版本。Java官网:https://docs.oracl原创 2021-08-14 15:44:02 · 1433 阅读 · 3 评论 -
JVM成神之路(一)---咱们为什么要学习JVM
关于作者作者介绍Carl,前科大讯飞软件开发工程师。上海国民集团健康科技有限公司架构师,武汉颐道圆信息科技有限公司架构师。熟悉Java、Spring、Spring Boot、Spring Cloud、Redis、MyBatis、MQ、数据结构、设计模式等等,开发过诸多大型项目,独立架构过单日接口调用量过亿的企业级项目。有丰富的项目经验。热爱编程,乐于分享。关于文章JVM系列每一篇文章我都录制了对应的视频,由于优快云不能直接发送视频资料,如果想要作者录制的免费视频资料,可以加QQ:313988258原创 2021-08-14 15:07:05 · 3599 阅读 · 3 评论
分享