JVM
文章平均质量分 74
fayable
I'm just a programmer
展开
-
二进制,八进制,十进制和十六进制的数值字面量前缀
literalJava, C, JS中不同进制数值的字面量前缀:二进制(Binary)字面量前缀:0b或0B。八进制(Octal):0。十进制(Decimal)字面量无前缀。十六进制(Hex):0x或0X。codepublic class Test { public static void main(String[] args) { System.out.println(0B101); // binary System.out.println(012); // Octol转载 2021-01-08 10:43:42 · 880 阅读 · 1 评论 -
如何查看JAVA类文件的编译JDK版本信息
方法一、javap命令javap命令可以用于反编译java class文件。查看jar包的编译版本首先是将jar包解压,然后再选择其中一个class文件,查看major版本号ou're looking for this on the command line (for a class called MyClass):1. linux终端命令$ javap -verbose MyClass | grep "major"On Unix/Linux:$JAVA_HOME/bin/java原创 2021-01-08 10:24:37 · 1443 阅读 · 0 评论 -
类加载机制
类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)。另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些...转载 2021-01-07 17:10:44 · 129 阅读 · 0 评论 -
JVM - Java8内存模型—永久代(PermGen)和元空间(Metaspace)
Metaspace(元空间)JDK1.7中,存储在永久代的部分数据就已经转移到了Java Heap或者是 Native Heap。但永久代仍存在于JDK1.7中,并没完全移除,譬如符号引用(Symbols)转移到了native heap;字面量(interned strings)转移到了java heap;类的静态变量(class statics)转移到了java heap。我们可以通过一段程序来比较 JDK 1.6 与 JDK 1.7及 JDK 1.8 的区别,以字符串常量为例: pa.转载 2021-01-07 14:11:36 · 116 阅读 · 0 评论 -
Java内存管理-JVM内存模型以及JDK6、JDK7和/DK8内存模型对比总结
目录一、概述二、JVM运行时数据区域三、JDK6、JDK7、JDK8的JVM内存模型的总结四、总结知识地图:一、概述Java的内存管理采用[自动内存管理]机制,因为这个自动管理机制,Java程序员就不需要去写释放内存的代码,而且不容易出现内存泄漏问题(比C/C++程序员少一些烦恼)。但是由于内存的申请和释放都交给了Java虚拟机,一旦出现内存泄漏和溢出问题时,在不了解Java虚拟机内存结构和自动管理机制的情况下,就很难排查问题的所在。所以如果想要成为一个优秀的程序员或者进阶为转载 2021-01-07 14:08:44 · 670 阅读 · 0 评论 -
jstat命令查看jvm的GC情况 (以Linux为例)
目录 类加载统计: 编译统计 垃圾回收统计 堆内存统计 新生代垃圾回收统计 新生代内存统计 老年代垃圾回收统计老年代内存统计元数据空间统计总结垃圾回收统计JVM编译方法统计jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意!!!:使用的jdk版本是jdk8. 类加载统计: Loaded:加载class...转载 2021-01-07 14:01:41 · 151 阅读 · 0 评论 -
JVM调优实战原理
理论篇 多功能养鱼塘-JVM内存 大鱼塘O(可分配内存):JVM可以调度使用的总的内存数,这个数量受操作系统进程寻址范围、系统虚拟内存总数、系统物理内存总数、其他系统运行所占用的内存资源等因素的制约。小池塘A(堆内存):JVM运行时数据区域,它为类实例和数组分配的内存。堆可以是固定大小的也可以是可变大小的。其中 Heap = {Old + NEW = { Eden , from, to } }。小池塘B(非堆内存):包括所有线程之间共享的一个方法区域和JVM为优化或内部处理所分配的...转载 2021-01-07 13:59:49 · 215 阅读 · 0 评论 -
JVM 原理分析及调优
New(年轻代)1、堆内存2、用来存放JVM刚分配的Java对象3、(a):Eden用来存放JVM刚分配的对象 (b):Survivor1 (c):Survivro2:两个Survivor空间一样大,当Eden中的对象经过垃圾回收没有被回收掉时,会在两个Survivor之间来回Copy,当满足某个条件,比如Copy次数,就会被Copy到Tenured。显然,Surviv原创 2017-03-10 11:20:47 · 1765 阅读 · 0 评论