![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA 虚拟机
文章平均质量分 54
Sean_zzZ
这个作者很懒,什么都没留下…
展开
-
关于JDK, JRE ,JVM 之间的区别
JVM 是一个抽象机器。 它是一个提供可以执行Java字节码的运行时环境的规范。JVM可用于许多硬件和软件平台(即JVM是平台相关的)。是指定Java虚拟机的工作的规范。 但实现提供程序是独立的选择算法。 其实现是由Sun和其他公司提供。 它的实现被称为JRE(Java运行时环境)。 运行时实例只要在命令提示符上编写java命令来运行java类,就会创建JVM的实例。原创 2017-12-04 15:02:43 · 339 阅读 · 0 评论 -
JVM 内存区域以及内存溢出和内存泄露
java 定义了若干种程序运行期间会使用到的运行时数据区,其中有的会随着虚拟机启动而创建,随着虚拟机退出而销毁,另外一些则是线程一一对应,这些与县城对应的数据库区域会随着线程开始而创建,线程结束而销毁Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区 运行时常量池。PC 寄存器(程序计数器): 是当前线程所执行的字节码的原创 2017-12-09 19:58:04 · 524 阅读 · 0 评论 -
Java虚拟机对象创建及其内存分配
对象的创建:当遇到new 指令后 , 首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用。并检查这个符号引用是否被加载,解析,初始化,如果没有,就需要先进行类加载当类加载通过后,进行内存分配内存分配完毕后,虚拟机需要将分配到的内存空间初始化为零值虚拟机对对象进行对象头进行设置进行init 初始化对象中的内存分配对象在内存中村粗的布局分为 对象头,实例数据,和对齐填充 对象头:包括两部分原创 2017-12-21 10:07:54 · 280 阅读 · 0 评论 -
JVM 内存分配与回收策略
Java 中,对象的内存分配,大的方向讲,就是在堆上分配。对象主要分配在新生代的eden区上。内存分配规则:大多数情况,内存在新生代eden区中分配,当eden区没有足够空间进行分配的时候,虚拟机将发起一次minor GC 大对象直接进入老年代原创 2017-12-21 10:11:15 · 350 阅读 · 0 评论 -
Java 虚拟机永久代的垃圾收集
永久代中的垃圾收集主要回收两个部分内容: 废弃常量和无用类常量的回收: 当系统中没有任何常量对象引用常量池中的常量,也没有其他敌法引用这个字面量,如果发生内存回收,必要的话, 没有使用的常量将会被系统清理出常量池什么叫做无用类: 判断一个类是否是无用类的条件有三个:1,该类的所有实例都已经被回收,也就是Java堆中不存在该类的任何实例 2, 加载该类的class loader 已经被回收 3原创 2017-12-15 17:10:40 · 1290 阅读 · 0 评论