Java虚拟机
dazou1
这个作者很懒,什么都没留下…
展开
-
Java内存区域与内存溢出异常
1.运行时数据区域分布 1.1 程序计数器线程私有 计数器记录的是正在执行的虚拟机字节码指令的地址,如果是Native方法,计数器值为空(Undefined) Java虚拟机的多线程是通过线程轮转切换并分配处理器执行时间的方式实现的,线程切换后能够恢复到正确的位置就是依靠每个线程独立的程序计数器1.2 Java虚拟机栈线程私有 虚拟机栈描述的是Java方法执行的内存模型:...原创 2019-02-22 20:26:03 · 154 阅读 · 0 评论 -
虚拟机类加载机制
类加载机制类生命周期初始化时机不能触发初始化的时机加载阶段验证阶段准备阶段解析阶段初始化阶段类加载整体过程类加载器1.类与类加载器2. 双亲委派模型类生命周期类从加载到虚拟机内存开始,到卸载出内存为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。解析阶段在某些情况下可以在初始化之后再开始,这是为了支持Java语言的动态绑定。初始化时机虚拟机严格规定有且仅有以下5种...原创 2019-02-28 23:01:56 · 140 阅读 · 0 评论 -
虚拟机方法执行
栈帧虚拟机栈中存储的是一个个栈帧,每个栈帧代表一个方法体,一个栈帧的进栈与出栈对应着一个方法的调用开始和结束。每一个栈帧都包含局部变量表、操作数栈、动态链接、方法返回地址和一些额外的附加信息,局部变量表和操作数栈所需要多大空间已经在编译器确定下来;执行引擎只会处理位于栈顶的栈帧,这个栈帧称为当前栈帧。局部变量表存放方法参数和方法内的局部变量最小单位为Slot,除了lo...原创 2019-02-28 23:01:46 · 206 阅读 · 0 评论 -
JDK 命令行工具
1、JPS(JVM Process Status Tool)描述: 虚拟机进程状态管理工具;其他工具在使用时需要通过该工具来获取LVMID; 列举正在运行的虚拟机进程; 进程本地虚拟机唯一ID(Local Virtaul Machine IdentiferLVMID) 显示虚拟机执行主类(main()方法所在的类)的名称2 、Jstat (JVM Statistics Monitori...原创 2019-02-28 23:01:29 · 91 阅读 · 0 评论 -
JVM内存结构、Java内存模型、Java对象模型之间的区别
平时我们比较容易搞混的JVM内存结构、Java内存模型之间的概念,以为JVM内存结构、Java内存模型是一样的,其实这两者有着很大的区别。JVM内存结构Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。有些区域是线程共享的,有些区域是线程独占的,因线程启动而建立,因线程结束而销毁。JVM运行时内存区域结构如下...原创 2019-04-28 13:39:02 · 560 阅读 · 0 评论