首页 > 试题广场 >

简单说下你对JVM的了解

[问答题]
jvm 分为堆栈,堆存储数据,栈用来执行方法(程序计数器、虚拟机栈、本地方法栈)
发表于 2022-05-24 17:52:11 回复(1)
JVM是Java语言跨平台的关键,Java在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性。运行程序的物理机千差万别,而JVM则在千差万别的物理机上面简历了统一的运行平台,实现了在任意一台JVM上编译的程序,都能在任何其他JVM正常运行。 JVM由三部分组成:类加载子系统、执行引擎和执行时数据区。1)类加载子系统:可以根据指定的全限定名来载入类或接口。2)执行引擎:负责执行那些包含在被载入类的方法中的指令。3)当程序运行时,JVM需要内存来存储许多内容,例如:字节码、对象、参数、返回值、局部变量、运算的中间结果等,JVM会把这些东西都存储到运行时数据区中,以便于管理。而运行时数据区又可以分为方法区、堆、虚拟机栈、本地方法栈、程序计数器。
发表于 2022-07-23 18:45:11 回复(0)
jvm的主要任务就是把人类看得懂的语言,编译成计算机看得懂的语言(字节码) jvm通过类加载子系统把java文件加载成字节码文件使java能够跨平台运行实现“一次编译,多次运行”的虚拟机。 jvm的三部分包括:1、类加载子系统(载入未加载的类.java→.class)2、执行引擎3、运行时数据区 而运行时数据区包括: 1、虚拟机栈(线程私有) 2、本地方法栈(线程私有) 3、程序计数器(线程私有) 4、方法区(线程共享) 5、堆区(线程共享)
发表于 2022-12-04 19:46:44 回复(0)
- JVM是java语言跨平台的关键 - HotSpot是Sun / Oracle JDK / Open JDK的默认Java虚拟机,也是目前使用范围最广的Java虚拟机 - JVM由三部分组成:1.类加载子系统,2.执行引擎,3.运行时数据区
发表于 2022-07-09 17:23:14 回复(0)
jvm是java语言实现跨平台的关键,它隐藏了底层技术的复杂性,和不同操作系统的差异。 jvm有三大功能 解释和运行java程序,自动内存管理(内存分配,垃圾回收),JIT(对热点代码进行优化,提高效率)。 JVM由类加载子系统 ,执行引擎,运行时数据区。
发表于 2024-04-12 00:11:53 回复(0)
JVM是Java语言跨平台的关键,Java在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性。运行程序的物理机千差万别,而JVM则在千差万别的物理机上面简历了统一的运行平台,实现了在任意一台JVM上编译的程序,都能在任何其他JVM正常运行。

JVM由三部分组成:类加载子系统、执行引擎和执行时数据区。
1)类加载子系统:可以根据指定的全限定名来载入类或接口。
2)执行引擎:负责执行那些包含在被载入类的方法中的指令。
3)当程序运行时,JVM需要内存来存储许多内容,例如:字节码、对象、参数、返回值、局部变量、运算的中间结果等,JVM会把这些东西都存储到运行时数据区中,以便于管理。而运行时数据区又可以分为方法区、堆、虚拟机栈、本地方法栈、程序计数器。
发表于 2023-02-25 16:41:45 回复(0)
JVM是Java语言跨平台的关键,由三部分组成:类加载器、运行时方法区和执行引擎,其中运行时数据库由程序计数器、Java栈、本地方法栈、Java堆和方法区组成,Java栈和程序计数器是线程私有的,而方法区和Java堆是线程共有的。
发表于 2022-09-11 21:48:13 回复(0)
JVM是Java语言跨平台的关键,Java在虚拟机层面隐藏了底层技术的复杂性以及机器与操作系统的差异性,运行程序的物理机千差万别,而JVM则在千差万别的物理机上建立了统一的运行平台,实现了在任意一台JVM上编译的程序,都能在任何其他JVM上正常运行,JVM由三部分组成:类加载子系统、执行引擎和运行时数据区。类加载子系统:可以根据指定的全限定名来载入类和接口。执行引擎:负责执行那些包含在被载入类的方法中的指令。运行时数据区:当程序运行时,JVM需要内存来储存许多内容,例如字节码、对象、参数、返回值、局部变量、运算的中间结果等,JVM会把这些东西存储到运行时数据区里,以便管理。运行时数据区又可分为方法区、堆、虚拟机栈、本地方法栈、程序计数器
发表于 2024-05-26 22:04:13 回复(0)
JVM的内部结构:堆区、栈区、方法区。堆区用来存储变量实例,可以分为青年代和老年代,青年代又可以分为Eden,Survivor1,Survivor2,大小比例为8:1:1,这种划分主要是为了GC的方便。青年代使用复制算法,老年代使用标记清理算法,堆区线程公有;栈区主要用来执行方法,每个方法执行都是一个栈帧,随着函数调用与返回出入栈,栈帧中保存了程序指针等;
发表于 2024-05-25 16:02:47 回复(0)
jvm的主要任务是将人类能看懂的语言编译成计算机能看懂的语言。jvm通过类加载子系统使java系统能够跨平台运行且实现“一次编译,处处运行”,jvm由类加载子系统,运行引擎,运行时数据区组成。 类加载子系统:可以根据全限定名来载入类和接口 运行引擎:负责执行被载入的类的方法中的指令 运行时数据区:jvm需要内存来存储运行时的数据,例如:字节码,对象,参数,返回值,局部变量,运算的中间结果等,jvm将这些东西存放在运行时数据区,以便于管理,运行时数据区又可以分为堆,方法区,虚拟机栈,本地方法区栈,计数器
发表于 2024-05-19 18:27:42 回复(0)
JVM是用于运行java代码的底层软件设施,借助于操作系统和c++实现得来的,java依靠其实现跨平台执行代码,真正实现了一次编译到处运行。主要由线程栈、元空间、堆等组成,线程栈中主要存储java代码运行的线程状态,比如局部变量、方法入口等,元空间主要存储字节码数据和静态变量和常量等数据,堆中主要存储类对象。线程栈是每一个线程所私有的,不存在并发问题,元空间和堆是共有的,其中堆中经常会发生并发问题,需要加锁解决。对于堆而言,java的JVM自带有垃圾回收机制来实时进行垃圾对象的清理,避免内存泄漏,程序员可以无需管理对象指针的释放
发表于 2024-05-09 19:24:34 回复(0)
类加载器,运行时数据区,执行引擎,运行时数据区包含虚拟机栈,本地方法栈,程序计数器,堆,方法区
编辑于 2024-04-03 13:22:22 回复(0)
JVM是Java跨平台的关键,一次编译到处执行,JVM主要任务是将Java的编译后的文件解释为机器语言,它主要包括:1. 类加载器 2.运行时数据区(线程不共享:程序计数器,Java虚拟机栈,本地方法栈 线程共享: 元空间(1.7之前是永久代),运行时常量池,堆,字符串常量池 )3.执行引擎
编辑于 2024-04-02 17:09:27 回复(0)
JVM:java虚拟机 是Java实现跨平台的关键 JDK :JRE + 开发工具集(javac,java编译工具) JRE:JVM + Java核心类库 内存关系模型:类加载子系统、执行引擎、运行时数据区
编辑于 2024-03-16 14:33:12 回复(0)
编辑于 2024-03-08 10:44:52 回复(0)
JVM虚拟机是Java语言跨平台的关键 JVM由3部分组成 类加载子系统 执行引擎 运行时数据区 运行时数据区分为方法区 堆 栈 程序计数器 方法区 和堆是线程共享的 其他是线程私有的
编辑于 2024-03-05 18:14:08 回复(0)
1.Java语言跨平台的关键,jvm上编译的程序在任意jvm上都能运行,jvm完成了对硬件资源的兼容和内存资源等的管理 2.jdk中的Java默认虚拟机是HopSpot 3.jvm由三部分组成: 1.类加载子系统:根据指定的全限定名来载入类或接口 2.执行引擎:负责执行指令 3.运行时数据区:方法区-线程共享,堆-线程共享,虚拟机栈,本地方法栈,程序计数器
发表于 2024-03-02 16:52:47 回复(0)
jvm 是有c++开发的 运行java class的程序,又叫虚拟机,当jvm 运行的时候,数据运行区域,里边包含线程栈 ,程序计数器 堆 共享 方法区,具体运行的时候 class loader加载class. 进行校验,以及创建类, 执行引擎 解释执行,如果是热门代码,命令 jni 执行
发表于 2023-11-29 16:45:11 回复(0)
jvm是虚拟机 他在jre中 其中jdk中包含jre jre包含jvm jvm 中包含本地方法栈 类加载器(双亲委派机制) 执行引擎 栈里面存放方法和方法中声明的变量 堆 内存中最大的一片区域 存放实例对象 数组对象 字符串变量池 还有空闲区域 堆内存分为不同的区域 你想下 因为他要被回收垃圾 所以为了高效管理 肯定会划分为不同的区域 所以 堆由新生区 养老区 永久区 方法区包含已加载的.class类对象 常量 静态变量 编译后的数据
发表于 2023-08-18 10:08:49 回复(0)
堆(对象内存分配的地方)程序计数器(记录代码执行到了哪一行)虚拟机栈(给方法创建栈帧,栈帧入栈执行代码,方法运行完弹栈)本地方法栈(加载的是native修饰的方法)方法区(存储class信息,类的信息,方法的定义)
发表于 2023-08-16 10:04:57 回复(0)