编辑“︁
Java虚拟机
”︁(章节)
跳转到导航
跳转到搜索
File:AnonEditWarning.svg
您当前没有登录。
如果您保存任何编辑,您的
IP地址
将
公开记录
在
本页的修订历史
中。您如果
登录
或
注册一个帐号
,可以隐藏自己的IP地址并
使用更多功能
。您可以在
您的对话页
查看给您的留言。
任何侵权内容
将会删除 | 百科内容须附有来源,以
供查证
| 维基百科内容均容许他人编辑、使用和重制 | 参阅
繁简
和
地区词处理
指引。
反垃圾检查。
不要
加入这个!
===虚拟机架构=== Java虚拟机以原始值(整数及浮点数)及[[參照|引用]]的方式运行,其本质上是一个32位的机器。64位的<code>long</code>和<code>double</code>类型数据被原生支持,但需要在帧的局部变量或操作数栈中占用两个存储单元(单个单元为32位)。<code>boolean</code>、<code>byte</code>、<code>short</code>及<code>char</code>均为[[符号扩充]]类型(<code>char</code>使用[[符号扩充#零扩展|零扩展]]),且以32位整数的形式(与<code>int</code>类型相同)运作。较小的数据类型仅有少量用于载入、存储于类型转换的特定指令。<code>boolean</code>类型被视为8位<code>byte</code>值,0代表<code>false</code>,1代表<code>true</code>。(虽然《Java虚拟机规范第二版》阐明<code>boolean</code>被认为是一种数据类型,但除[[类型特征]]的[[名字修饰]]及boolean数组类型外<code>boolean</code>和<code>byte</code>无太大区别。<code>boolean</code>类型的方法签名为<code>Z</code> 而<code>byte</code>的类型签名为<code>B</code>。布尔型数组搭载数据类型<code>boolean[]</code>,但每个元素使用8个字节,同时Java虚拟机不内置将布尔数据包装成[[位数组]]的功能,除此之外其与<code>byte</code>数组大同小异。在其他用途中,Java虚拟机实际上不知道<code>boolean</code>类型,因为用于操作布尔型数据的指令与操作<code>byte</code>的指令完全相同。) Java虚拟机拥有用于存储对象及数组的[[垃圾回收 (計算機科學)|垃圾回收]]堆。代码、常量及其他类数据均存储于“方法区”中。方法区逻辑上是堆的一部分,但虚拟机的实现可能会区分两者,从而可能不对方法区进行垃圾回收。每个Java虚拟机线程均有其自己的[[调用栈]](Java虚拟机栈),用于存储[[呼叫堆疊|帧]]。当调用方法时,Java虚拟机将新建一个帧;方法退出时,帧将自动消除。 每帧均提供一个“操作数栈”及一个“局部变量”数组。操作数栈用于计算操作数和接收被调用方法的返回值,而局部变量与寄存器的用途相同,也用于传递方法参数。故Java虚拟机既是[[堆疊結構機器|堆栈机器]],也是[[寄存器机]]。
编辑摘要
(请简要描述您所作出的修改
,或选择:
新条目
修饰语句
修正笔误
内容扩充
排版
来源
内部链接
分类
消歧义
维基化
维护清理
)
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
条目
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
分类索引
特色内容
新闻动态
随机条目
联络我们
关于维基百科
资助维基百科
贡献
帮助
维基社群
编辑入门
互助客栈
IRC即时聊天
最近更改
特殊页面
工具
链入页面
相关更改
特殊页面
页面信息