JVM
叫我_大聪明
这个作者很懒,什么都没留下…
展开
-
JVM学习-垃圾回收之相关概念
System.gc()的理解 默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存 但其无法保证对垃圾收集器的调用 JVM实现者可以通过System.gc()调用来决定JVM的GC行为,一般情况下,垃圾回收应该是自动进行的,无需手动触发。 内存溢出与内存泄漏 内存溢出(OOM) 解释:没有空闲内存,并且垃圾收集器也无法提供更多内存 内存溢出相对于内存泄漏来说,内存溢出也是原创 2020-09-27 20:37:32 · 85 阅读 · 0 评论 -
JVM学习-垃圾回收之相关算法
标记阶段 对象存活判断 在堆区存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先区分出内存中哪些是存活对象,哪些是已经死亡的对象,只有标记为已死亡的对象,GC才会在执行回收时,释放其内存空间,此阶段成为垃圾标记阶段 当一个对象已经不再被任何存货对象继续引用时,就可以宣判为已经死亡 判断对象存活一般有两种方式:引用计数算法和可达性分析算法 引用计数算法 对每个对象保存一个整型的引用计数器属性,用于记录对象被引用的情况 对于一个对象A,只要有任何一个对象引用了,则A的引用计数器加1,失效时,计原创 2020-09-26 16:34:59 · 63 阅读 · 0 评论 -
JVM学习之垃圾回收概述及相关算法
什么是垃圾 垃圾是指 在运行程序中没有任何指针指向的对象 ,这个对象就是需要被回收的垃圾 如果不及时对内存中的垃圾进行清理,那么这些垃圾对象所占用的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出 为什么需要GC 对于高级语言,如果不进行垃圾回收,内存迟早都会消耗完。因为不断地分配内存空间而不进行回收,就好像不停地生产生活垃圾而从不打扫一样 除了释放没用的对象,垃圾回收也可以清除内存里的记录碎片。碎片整理将所占用的堆内存移到堆的另一端,以便JVM将整理出的内存分配原创 2020-09-26 10:29:37 · 115 阅读 · 1 评论 -
JVM之执行引擎
JVM学习之执行引擎执行引擎概述执行引擎的工作过程为什么说Java是半编译半解释型语言?解释器(Interpreter)JIT编译器机器码、指令、汇编语言机器码指令指令集汇编语言高级语言字节码 执行引擎概述 执行引擎是Java虚拟机核心的组成部分之一 虚拟机是相对于物理机的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的 而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约的定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持原创 2020-09-21 21:21:32 · 114 阅读 · 0 评论