查看“【面试:JVM】”的源代码
←
【面试:JVM】
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:面试]] === 说说Java虚拟机的生命周期及体系结构? === 参见:[[Java虚拟机生命周期和体系结构]] === Java 是如何实现跨平台的? === 注意:'''跨平台的是 Java 程序,而不是 JVM'''。 JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM。 所谓“跨平台”,即实现“一次编译,到处运行”: # 我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件; # Java 虚拟机(JVM)负责将字节码文件翻译成特定平台下的机器码然后运行。 也就是说,只要在不同平台上安装对应的 JVM,就可以运行字节码文件,运行我们编写的 Java 程序,这个过程,我们编写的 Java 程序没有做任何改变,仅仅是通过 JVM 这一“中间层”,就能在不同平台上运行(不同平台使用不同的 JVM 实现),从而实现“跨平台”。 === 什么是 JVM ? === JVM,即 Java 虚拟机(“Java Virtual Machine”)。它通过模拟一个计算机来达到一个计算机所具有的的计算功能。JVM 能够跨计算机体系结构来执行 Java 字节码,主要是由于 JVM 屏蔽了与各个计算机平台相关的软件或者硬件之间的差异,使得与平台相关的耦合统一由 JVM 提供者来实现。 === JVM 由哪些部分组成? === JVM 的结构基本上由 4 部分组成: # '''类加载器''',在 JVM 启动时或者类运行时将需要的 class 加载到 JVM 中。 # '''执行引擎''',执行引擎的任务是负责执行 class 文件中包含的字节码指令,相当于实际机器上的 CPU。 # '''内存区''',将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机器上的各种功能的寄存器或者 PC 指针的记录器等。 # '''本地方法调用''',调用 C 或 C++ 实现的本地方法的代码返回结果。 === 说一说类加载器? ===
返回至“
【面试:JVM】
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息