![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
JIESHAOCSDN
这个作者很懒,什么都没留下…
展开
-
JVM中GC的基本概念
1.简述java垃圾回收机制java中是虚拟机自行执行垃圾回收。在JVM中,有一个垃圾回收线程,是低优先级的。在虚拟机空闲或者当前内存空间不足的时候,扫描没有被引用的对象,并将其添加到要回收的集合中,进行垃圾回收。2.GC是什么?为什么要GCGC是垃圾回收的意思。java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的。垃圾回收机制有效的防止了内存泄漏,可以有效的使用内存。垃圾回收器通常作为一个单独的低级别的线程运行,在不可预知的情况下对内存堆中已死亡的或者很长时间没有用过的对原创 2020-10-27 20:58:53 · 354 阅读 · 0 评论 -
JVM的主要组成部分及作用
JVM主要组成部分及作用JVM主要包含两个子系统和两个组件:子系统:类加载系统,执行引擎组件:运行时数据区,本地方法接口类加载系统:根据给定的类的全限定类名(java.lang.obejct)将字节码文件加载到运行时数据区的方法区。执行引擎:执行classes中的指令运行时数据区:即是我们常说的jvm内存。里边包含了线程共享区(方法区,堆),线程独占区(本地方法栈,程序计数器,虚拟机栈)本地方法接口:连接本地方法库,是与其他编程语言交互的接口。java程序运行机制详解:1>IDE工具原创 2020-10-26 19:26:27 · 882 阅读 · 0 评论 -
JVM中栈(stack)与堆(heap)的区别
java程序是在JVM上运行的,所以此处说的堆和栈是指JVM内存区域的堆和栈。区别如下: 1、物理地址 堆的物理地址是不连续的,性能相对较慢,是垃圾回收区工作的区域。在GC时,会考虑物理地址不连续,而使用不同的算法,比如复制算法,标记-整理算法,标记-清楚算法等。 栈中的物理地址是连续的,LIFO原则,性能较快。 2、内存分别 堆因为是不连续的,所以分配的内存是在运行期确认的,因此大小不固定,一般堆大小远远大于栈。 栈是固定大小的,所以在编译期就确认了。 3、存放内容 堆中存放的是对象实例.原创 2020-10-20 22:05:04 · 1012 阅读 · 1 评论 -
JVM对象分配规则
1>对象优先分配在Eden区。如果没有足够空间,Eden去进行一次Minor GC。2>大对象直接分配在老年代,以避免Eden和Survivor区的大量内存拷贝(因为针对Eden区使用复制算法进行GC)3>长期存活的对象进行老年代。虚拟机为每个对象设定了一个年龄计数器,一次GC之后,由Eden进入Survivor。每次GC。年龄计数器加一,到达阈值后,进入老年代。4>动态判断对象年龄,Survivor区中相同年龄的对象大小的总和大于Survivor空间的一半,年龄大于或等于该年原创 2020-09-13 23:00:15 · 511 阅读 · 1 评论