Java虚拟机
文章平均质量分 72
发热的嘤嘤怪(2003计科胜胜同学)
工院计科2003班的小胜(#^.^#),欢迎合作!!1
展开
-
Java的分带垃圾回收
Java的垃圾回收算法一. 分代回收二. 相关VM参数一. 分代回收对象首先分配在伊甸园区域新生代空间不足时,触发 minor gc,伊甸园和 from 存活的对象使用 copy 复制到 to 中,存活的对象年龄加 1并且交换 from tominor gc 会引发 stop the world,暂停其它用户的线程,等垃圾回收结束,用户线程才恢复运行当对象寿命超过阈值时,会晋升至老年代,最大寿命是15(4bit)当老年代空间不足,会先尝试触发 minor gc,如果之后空间仍不足,那么触发原创 2022-10-07 11:30:15 · 145 阅读 · 0 评论 -
Java的垃圾回收算法
在新生代-复制算法每次垃圾收集都能发现大批对象已死, 只有少量存活. 因此选用复制算法, 只需要付出少量存活对象的复制成本就可以完成收集在老年代-标记整理算法因为对象存活率高、没有额外空间对它进行分配担保, 就必须采用“标记—清理”或“标记—整理”算法来进行回收, 不必进行内存复制, 且直接腾出空闲内存.在JVM的实际开发中,不会说只用一种算法,而是采取多种算法结合一起来共同实现垃圾回收。...原创 2022-08-27 16:27:47 · 112 阅读 · 0 评论 -
JVM虚拟机中如何判断对象可以回收
是Java虚拟机用来判断对象是否为垃圾的算法称为可达性分析算法。原创 2022-08-27 11:36:07 · 504 阅读 · 0 评论 -
Java中的JVM虚拟机的内存与直接内存
直接内存不属于java虚拟机内存,而属于操作系统内存当我调用直接内存(Direct Memory)常见于 NIO 操作时,用于数据缓冲区分配回收成本较高,但读写性能高不受 JVM 内存回收管理。原创 2022-08-24 01:45:55 · 459 阅读 · 0 评论 -
Java中的StringTable常量池
将这个字符串对象尝试放入串池,如果有则并不会放入,如果没有则放入串池, 会把串。将这个字符串对象尝试放入串池,如果有则并不会放入,如果没有会把此对象复制一份,演示StringTable垃圾回收。放入串池, 会把串池中的对象返回。串池中的字符串有且仅有一个。通过分析案例中,我们证明了。第一次用到时才变为对象。PerGen 永久代。原创 2022-08-23 18:21:12 · 194 阅读 · 0 评论 -
Java中的方法区
oracle官网权威定义翻译之后:Java 虚拟机具有一个在所有 Java 虚拟机线程之间共享的方法区域。方法区域类似于用于常规语言的编译代码的存储区域,或者类似于操作系统进程中的“文本”段。它存储每个类的结构,如运行时常量池、字段和方法数据,以及方法和构造函数的代码,包括类和实例初始化以及接口初始化中使用的特殊方法。方法区域是在虚拟机启动时创建的。尽管方法区域在逻辑上是堆的一部分,但简单的实现可能会选择不进行垃圾回收或压缩它。此规范不规定方法区域的位置或用于管理已编译代码的策略。原创 2022-08-22 12:21:28 · 304 阅读 · 0 评论 -
Java中的堆
Heap堆通过new关键字,创建对象都会使用堆内存。原创 2022-08-21 17:26:34 · 407 阅读 · 0 评论 -
Java的本地方法栈
如果一个 VM 实现使用 C-linkage 模型来支持 Native 调用, 那么该栈将会是一个。C 栈,但 HotSpot VM 直接就把本地方法栈和虚拟机栈合二为一。本地方法区和 Java Stack 作用类似,例如:Object类中的方法。原创 2022-08-21 16:25:37 · 210 阅读 · 0 评论 -
Java中的虚拟机栈
JVM Stacks 虚拟机栈先进后出,后进先出每个方法在运行时需要的内存都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程栈帧( Frame)是用来存储数据和部分过程结果的数据结构,同时也被用来处理动态链接(Dynamic Linking)、方法返回值和异常分派( Dispatch Exception)。栈帧随着方法调用而创建,随着方法结束而销毁— —原创 2022-08-21 01:52:47 · 277 阅读 · 0 评论 -
Java中的程序计数器
Program Counter Regiser 程序计数器(寄存器)线程私有一块较小的内存空间, 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也称为“线程私有”的内存。正在执行 java 方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果还是 Native 方法,则为空。这个内存区域是唯一 一个在虚拟机中没有规定任何情况的区域。.........原创 2022-08-13 00:42:04 · 799 阅读 · 0 评论 -
什么是JVM
定义:Java虚拟机(英语:Java Virtual Machine,缩写为JVM),一种能够执行Java bytecode的虚拟机,以堆栈结构机器来进行实做。最早由Sun微系统所研发并实现第一个实现版本,是Java平台的一部分,能够执行以Java语言写作的软件程序。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。通过对中央处理器原创 2022-08-12 23:47:55 · 135 阅读 · 0 评论