JVM虚拟机
文章平均质量分 84
程序员老石
当你的才华满足不了你的野心,你应该滚去学习
展开
-
Java的Jps命令使用详解
jps(Java Virtual Machine Process Status Tool)是JDK提供的一个可以列出正在运行的Java虚拟机的进程信息的命令行工具,它可以显示Java虚拟机进程的执行主类(Main Class,main()函数所在的类)名称、本地虚拟机唯一ID(LVMID,Local Virtual Machine Identifier)等信息。另外,jps命令只能显示它有访问权限的Java进程的信息。转载 2024-04-21 16:36:17 · 538 阅读 · 0 评论 -
JVM -运行时数据区 - 堆空间
2、Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间,【5、数组和对象可能永远不会存储在栈上,因为栈帧中保存引用,这个引用指向对象或者数组在堆中的位置。6、在方法结束后,堆中的对象不会马上被移除,仅仅在垃圾收集的时候才会被移除。开发和生产环境中建议将初始堆内存和最大堆内存设置成相同的值。1、一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。7、堆,是垃圾收集器(GC)执行垃圾回收重点收集的区域。4、所有的对象实例化及数组都应当在运行时分配在堆上。.原创 2022-07-26 16:32:17 · 247 阅读 · 0 评论 -
JVM - 运行时数据区(程序计数器、栈)
一个NativeMethod就是一个Java调用非Java代码的接口。使用native修饰的方法称为本地方法。原创 2022-07-25 17:02:48 · 785 阅读 · 0 评论 -
JVM 类加载机制及双亲委派模型
整体的流程Java 中的所有类,必须被装载到 jvm 中才能运行,这个装载工作是由 jvm 中的类加载器完成的,类加载器所做的工作实质是把类文件从硬盘读取到内存中,JVM 在加载类的时候,都是通过 ClassLoader 的 loadClass()方法来加载 class 的,loadClass 使用双亲委派模型。先解析一下这张图,图表示类的整个声明周期,类从被加载到虚拟机内存开始,到卸载出内存为止,包含 7 个阶段,其中验证、准备、解析 3 个阶段统称为连接。加载、验证、准备、初始化和卸载这 5 个原创 2022-05-23 15:44:00 · 1191 阅读 · 0 评论 -
JVM几种垃圾回收算法
1、标记-清除算法标记-清除算法分为“标记”和“清除”两个阶段,执行过程如下图所示:1、标记:首先标记出所有需要回收的对象2、清除:在标记完成后统一回收所有被标记的对象标记-清除算法主要有两个不足:1、效率问题,标记和清除的两个过程效率都不高2、标记-清除会产生大量不连续的内存碎片,这会导致在后面需要分配连续的大对象时,无法找到足够大的连续内存而导致不得不提前触发另一次垃圾收集动作。2、复制算法复制算法的大致思路如下,其执行过程如下图所示:1、首先将可用内存分为大小相等的两块,每次只使用原创 2022-05-23 14:40:07 · 1330 阅读 · 0 评论 -
JVM基础(一)
1、Jvm 的主要组成部分?及其作用?类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)各组件的作用:首先通过类加载器(ClassLoader)会把 Java 代码转换成字节码,运行时数据区(Runtime Data Area)再把字节码加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎(Execu原创 2022-03-29 22:36:49 · 256 阅读 · 0 评论