JVM 小结】的更多相关文章

1.jvm虚拟机的种类及特点 Sun Classic:解释和编译不能协调使用:使用基于句柄的对象查找. Exact VM:解释和编译能协调使用:采用准确式内存管理:可以知道内存中某个位置的数据是什么类型,便于GC判断数据是否还可用.抛弃了基于句柄的对象查找. Sun HotSpot VM:热点代码探测,通过执行计数器找出最具有编译价值的代码:解释器和编译器配合使用. 2.jvm内存区域划分 运行时数据区域分为两种:1.线程隔离的数据区:2.所有线程共享的数据区. 线程隔离区: 程序计数器.栈[虚…
原文:https://github.com/linsheng9731/notebook/blob/master/java/JVM.md 描述一下 JVM 的内存区域 程序计数器(PC,Program Counter Register).在 JVM 规范中,每个线程都有它自己的程序计数器,并且任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法.程序计数器会存储当前线程正在执行的 Java 方法的 JVM 指令地址:或者,如果是在执行本地方法,则是未指定值(undefined). Java…
字节码是构成Java平台无关性的基石.实现语言无关性的基础是虚拟机和字节码存储格式. Java语言中的各种变量.关键字和运算符的语义最终是由多条字节码命令组成,因此字节码命令所能提供的语义描述能力肯定会比Java语言本身更强大.   Class类文件的结构         Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件中,中间没有添加任何分隔符,所以整个Class文件中存储的内容基本上程序运行中必要的数据.         当遇到需要占用8…
可以看一下我的另一篇总结 JVM运行时数据区与JVM堆内存模型小结 推荐一篇文章,尚学堂的 Java内存模型深度解读 . 不方便全文转载,就摘录下吧. 以往的认知都是以基本类型.引用类型.常量.方法等来区分堆栈以及方法区常量池 -- 嗯,个人认知. 但这篇文章却刷新了认知: 1.JVM内存分为堆.线程栈.每个JVM线程都有自己的线程栈,其中存的是线程相关的信息(调用方法就会有线程?).--主要是这点,其他的仍然相通.但不确定是否只有堆栈. 2.线程栈存储的都是变量的私有副本,线程栈之间只能有私有…
对JVM中分层模型.垃圾回收期.垃圾回收算法趁着周末小结一下.有不对的地方,还请指正和讨论~ 1.JVM内存模型 2.JVM垃圾回收期  3.JVM垃圾回收算法 ------------------------------------------------------------------------------- 如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐] 如果您想转载本博客,请注明出处 如果您对本文有意见或者建议,欢迎留言 感谢您的阅读,请关注我的后续博客…
JVM调优浅谈 https://www.cnblogs.com/andy-zhou/p/5327288.html   1.数据类型 java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:它代表的值就是数值本身,而引用类型的变量保存引用值. “引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置. 基本类型包括:byte.short.int.long.char.float.double.boolean 引用类型包括:类类型.…
JVM规范组成: 1. 字节码(ByteCode): 以Class或Interface为基本单位, 具有固定结构. 2. 指令集(InstructionSet): 每个指令用一个字节表示, 最多256条指令, 除却永久留用的指令. 3. 虚拟机(VirtualMachine): 根据字节码, 调用指令集, 管理中间结果.三者之间的关系:…
一:JVM启动参数共分为三类:         其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容:        其二是非标准参数(-X),指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置.但是在生产环境中,并不保证所有jvm实现 都满足,所以为了提高性能,往往需要调整这些参数,以求系统达到最佳性能.另外这些参数不保证向后兼容,也即是说“如有变更,恕不在后续版本的JDK通 知”(这是官网上的原话):        其三是非Stable参数(…
1. JDK.JRE.JVM之间的关系.JDK包含JRE和其它开发工具库如编译器.调试期,jConsele性能检测工具等2. JVM的构成:类装载器子系统.执行引擎.运行时数据区,如下图: 3. JVM规范中运行时数据区组成:(1) 方法区:存储元数据如类信息.静态变量.常量池,线程共用(2) 堆:存储对象实例.数组等数据,线程共用(3) Pc寄存器,线程私有(4) Jvm方法栈,线程私有(5) 本地方法栈,线程私有Java 虚拟机hotspot实现时jvm方法栈和本地方法栈合并,方法区又称为持…
简介 jinfo是jdk自带的命令,可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数. 通常会先使用jps查看java进程的id,然后使用jinfo查看指定pid的jvm信息. jps #通过jps来查看当前运行状态的虚拟机进程 查看jvm的参数 jinfo -flags process_id 查看java系统参数 jinfo -sysprops process_id 虚拟机的这些参数可以通过下面的命令查看: java -XX:+PrintFlagsFinal -…