随笔分类 - JVM
摘要:一、基本概念介绍 1、Java Instrumentation 包介绍1)简单介绍 基于 Instrumentation 来实现的有: APM 产品: pinpoint、skywalking、newrelic、听云的 APM 产品等都基于 Instrumentation 实现 热部署工具:Inte
阅读全文
摘要:一、简介 根据字节码的不同用途,可以大概分为如下几类 加载和存储指令,比如 iload 将一个整形值从局部变量表加载到操作数栈 控制转移指令,比如条件分支 ifeq 对象操作,比如创建类实例的指令 new 方法调用,比如 invokevirtual 指令用于调用对象的实例方法 运算指令和类型转换,比
阅读全文
摘要:问题: JVM中的字节码是如何执行的? 一、虚拟机常见的实现方式有两种:Stack based (基于栈)和 Register based(基于寄存器)1)Stack based (基于栈) Hotspot JVM是基于栈实现的; public static int add(int a,int b)
阅读全文
摘要:问题: 1.如何将.java文件转化为.class文件? 2.class文件的内部结构是怎样的?如何查看它的内部结构内容? 3.字节码是什么? 一、先介绍两个命令 1)javac将java文件编译成class文件 比如:HelloWorld.java ==> HelloWorld.classjava
阅读全文
摘要:Question: I have some third library code that I run and after some time I run into OutOfMemoryError. So I fired up the Eclipse MAT and analyzed the me
阅读全文
摘要:一、概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id jstack 查看Java线程 jstack -l pid; 做thread dump,直接打印在串口 jstack pid>> ./threaddumps 输出到指定文件分析 jmap 查看Java
阅读全文
摘要:jstat命令可以查看堆内存各部分的使用量,以及加载类的数量. 命令的格式如下: jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 参数解释: Op
阅读全文
摘要:一、对象的内存布局 已主流的HotSpot虚拟机来说, 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 1.对象头(Header) HotSpot虚拟机的对象头包括两部分信息, 第一部分用
阅读全文
摘要:Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存
阅读全文