随笔分类 -  JVM

摘要:一、背景分析 线上故障主要会包括 CPU、内存、磁盘以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。基本上出问题就是 df、free、top,然后依次 使用jstack、jmap,具体问题具体分析。 二、CPU分析 一般来讲我们首先会排查 CPU 方 阅读全文
posted @ 2021-08-30 15:50 Mr.Aaron 阅读(711) 评论(0) 推荐(0)
摘要:Arthas是阿里巴巴开源出来的一个针对java的工具,主要是针对java的问题进行诊断。 官网地址(下载安装请看这里):https://alibaba.github.io/arthas/index.html 这个工具可以协助完成下面这些事情: 这个类是从哪个jar包加载而来的? 为什么会报各种类相 阅读全文
posted @ 2020-05-05 11:45 Mr.Aaron 阅读(4356) 评论(0) 推荐(0)
摘要:#前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢? 首先,出现问题,肯定要先定位问题所在,然后分析问题原因,再然后解决问题,最后进行总结,防 阅读全文
posted @ 2019-09-26 14:06 Mr.Aaron 阅读(558) 评论(0) 推荐(0)
摘要:哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为WPL=(W1*L1+W2*L2+W3*L3+...+ Wn*Ln),N个权值Wi(i=1, 阅读全文
posted @ 2019-07-04 15:45 Mr.Aaron 阅读(10300) 评论(2) 推荐(0)
摘要:原文链接:https://www.cnblogs.com/leefreeman/p/7402695.html 上一篇我们介绍了常见的垃圾回收算法,不同的算法各有各的优缺点,在JVM中并不是单纯的使用某一种算法进行垃圾回收,而是将不同的垃圾回收算法包装在不同的垃圾回收器当中,用户可以根据自身的需求,使 阅读全文
posted @ 2019-06-21 08:37 Mr.Aaron 阅读(228) 评论(0) 推荐(0)
摘要:原文链接:http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关 阅读全文
posted @ 2019-06-18 16:14 Mr.Aaron 阅读(163) 评论(0) 推荐(0)
摘要:为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对 阅读全文
posted @ 2019-06-17 21:47 Mr.Aaron 阅读(284) 评论(0) 推荐(0)
摘要:1.jvisualvm监控tomcat 修改tomcat的bin目录下的 catalina.sh文件,搜索JAVA_OPTS="",在引号中添加参数 2.jvisualvm监控可执行jar nohup java -Djava.rmi.server.hostname=192.168.1.123 -Dc 阅读全文
posted @ 2019-06-10 16:42 Mr.Aaron 阅读(389) 评论(0) 推荐(0)
摘要:初识JVM JVM概念 JVM是Java Virtual Machine的简称。意为Java虚拟机 虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统 有哪些虚拟机 VMWare Visual Box JVM VMWare或者Visual Box都是使用软件模拟物 阅读全文
posted @ 2018-11-12 22:07 Mr.Aaron 阅读(286) 评论(0) 推荐(0)
摘要:浅谈java内存模型 不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存 阅读全文
posted @ 2018-01-16 12:35 Mr.Aaron 阅读(1191) 评论(0) 推荐(0)
摘要:Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句: 这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4 阅读全文
posted @ 2017-12-25 14:44 Mr.Aaron 阅读(206) 评论(0) 推荐(0)
摘要:VM运行时数据区域 JVM执行Java程序的过程中,会使用到各种数据区域,这些区域有各自的用途、创建和销毁时间。根据《Java虚拟机规范(第二版)》的规定,JVM包括下列几个运行时数据区域: 1.程序计数器(Program Counter Register): 每一个Java线程都有一个程序计数器来 阅读全文
posted @ 2017-12-18 18:57 Mr.Aaron 阅读(358) 评论(0) 推荐(0)
摘要:数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 基本类型包括:byte,short,int,long, 阅读全文
posted @ 2017-12-05 22:48 Mr.Aaron 阅读(217) 评论(0) 推荐(0)
摘要:1 JVM简介 VM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽 阅读全文
posted @ 2017-11-29 18:18 Mr.Aaron 阅读(244) 评论(0) 推荐(0)
摘要:1 Java技术与Java虚拟机 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写Jav 阅读全文
posted @ 2017-11-16 21:41 Mr.Aaron 阅读(257) 评论(0) 推荐(0)