java字节码-小于int的类型的表示

2024-01-01

在我大学的一个项目中,我直接使用 Java 字节码。

浏览 JVM 可用指令列表后(http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings)我看到没有这样的东西[b|c|s]store, only istore用于将整数存储在局部变量中。这是否意味着如果在我的程序中我写:

short a;
int b;

我没有节省任何内存,因为每个局部变量条目占用 4 个字节?

我一直觉得使用short or byte类型会在运行时节省一些内存。


这在部分中进行了解释2.11.1 JVMS http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.11.1:

请注意,大多数指令[...]没有整数类型的形式byte, char, and short。没有人有表格boolean类型。编译器对大量类型的文字值进行编码byte and short使用 Java 虚拟机指令将这些值符号扩展为 type 的值int在编译时或运行时。[...]因此,大多数对实际类型值的操作boolean, byte, char, and short由对计算类型的值进行操作的指令正确执行int.

其理由如下:

鉴于 Java 虚拟机的一字节操作码大小,将类型编码为操作码对其指令集的设计带来了压力。如果每个类型化指令都支持 Java 虚拟机的所有运行时数据类型,那么指令的数量就会多于一个字节所能表示的数量。相反,Java 虚拟机的指令集为某些操作提供了降低级别的类型支持。换句话说,指令集是故意不正交的。根据需要,可以使用单独的指令在不支持和支持的数据类型之间进行转换。

然而,虽然这适用于堆栈变量的加载/存储,但它不适用于加载/存储到原始数组中;所有原始类型都有操作码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java字节码-小于int的类型的表示 的相关文章

随机推荐

  • 如何在Python中获取网络接口卡名称?

    有没有办法获取机器中网卡的名称等 eth0 lo 如果是的话你会怎么做 我已经研究过 但到目前为止我只找到了获取IP地址和MAC地址的代码 例如 import socket socket gethostbyname socket getho
  • Apache Pulsar 函数的状态,如果我们不显式调用 deleteState,它会“永远”保留吗?

    当函数使用 context putState id object 时 保存的对象是否会永远保存在簿记员中 直到调用显式的 deleteState same id 为止 除了调用deleteState之外 是否有某个时间点 任何类型的某种操作
  • onPause 停止 LocationManager

    我想我这样做对吗 我有这段代码 它开始通过此处未显示的 MyLocationListener 方法查找我的 GPS 位置 该方法有效 但我想在暂停时停止 locationManager 我认为或者每当此活动不是当前的 但我无法获取删除更新代
  • 数据库中的数据格式值更改

    forms py DATE INPUT FORMAT d m Y m d Y class ReportForm forms ModelForm manual date forms DateField input formats DATE I
  • Ruby on Rails:对同一模型具有不同名称的两个引用

    我的应用程序有一个名为User 它包括电子邮件地址 用户名 我想创建一个模型Message它应该有两个字段sender and recipient 两者都引用了User模型 我试过这个 rails generate model Messag
  • 开发 Ruby gem 时如何添加“撬”

    我有一个叫做 某物 的宝石 我想在开发 gem 时添加 pry 作为开发依赖项 但我不知道如何加载它 如果我在 lib something rb 中有 需要某些东西 当我释放 gem 时 它会抛出一个 LoadError 因为 pry 只是
  • TAB 自动完成 python CLI

    我只是想知道是否可以编写一个在 shell 中运行的 Python 脚本 当用户点击 Tab 时可以向他们提供建议 例如 某些应用程序如何限制其支持的建议文件类型 我在 optParse 中没有找到任何可以做到这一点的东西 理想情况下是 m
  • HashMap 中的 Double

    我正在考虑使用 Double 作为 HashMap 的键 但我知道浮点比较是不安全的 这让我开始思考 Double 类上的 equals 方法也不安全吗 如果是 则意味着 hashCode 方法也可能不正确 这意味着使用 Double 作为
  • 当前身份(NT 机构/网络服务)没有写入权限

    我开发了一个简单的网络应用程序 一个标签和一个按钮 单击按钮时 标签将显示 Hello World 当我在 Web 服务器上部署此 Web 应用程序并访问 URL 时 收到此错误消息 当前身份 NT 权威 网络服务 不 有写权限 C Win
  • 在运行时动态设置Python解释器优化

    经过一段时间在这里寻找重复项后 我发现唯一的事情是无操作并使用 Cython 进行优化 这是完全不相关的 我想要完成的是动态设置python O运行时标记 基本上 有一个值sys flags optimize这是只读的 我正在寻找一个选项来
  • 如何在软删除模型上使用资源控制器的 show 方法?

    所以我有一个名为的资源控制器ProjectController我添加了软删除并将其用作存档 Route get project archive ProjectController trash gt name project archive
  • Doxygen-如何记录具有非标准扩展名 (.INI) 的文件

    我有一个简单的问题 如何记录 INI 文件 我有一个具有以下布局的 C 项目 readme txt src main cpp data simple ini 我从 readme txt 和 main cpp 生成文档没有问题 但 simpl
  • 接受不在列表中的值 - bootstrap 组合框

    有没有办法让用户可以在引导组合框中输入其他值 从这个网站 https github com danielfarrell bootstrap combobox https github com danielfarrell bootstrap
  • 如何使用函数从管道中获取对象作为字符串?

    以字符串而不是对象形式输出结果的命令 ls Out String Stream Output Directory C MyPath dir1 Mode LastWriteTime Length Name a 2022 01 22 5 34
  • 我们可以使用 JavaScript 来压缩 PDF 文件吗?如果是,如何进行?如果否,为什么?

    我在浏览器上实现了上传文档功能 用户可以一次上传大约 4 5 个文档 然而 当我们上传文件大小在5MB左右且网络连接较慢 在浏览器的开发工具中设置较慢的3G网络 的文档时 由于网络超时 我们无法上传所有文件 为了成功上传尺寸较大且互联网连接
  • 使用 DQN 增加 Cartpole-v0 损失

    您好 我正在尝试训练 DQN 来解决健身房的 Cartpole 问题 由于某种原因Loss https i stack imgur com uHxpR png看起来像这样 橙色线 你们能看一下我的代码并帮忙解决这个问题吗 我已经对超参数进行
  • 根据条件选择 OpenMP 编译指示

    我有一个想要优化的代码 它应该在各种线程中运行 在我的 for 循环中使用不同的调度技术运行一些测试后 我得出的结论是 最适合的方法是在只有一个线程时执行动态调度 否则进行引导 这在 openMP 中可能吗 更准确地说 我希望能够执行以下操
  • 查找项目并更改自定义对象数组中的值 - Swift

    我有这门课 class InboxInterests var title var eventID 0 var count var added 0 init title String eventID NSInteger count Strin
  • 如何强制 gmail 收件箱重新加载/刷新?

    我构建了一个使用 Gmail API 中的导入端点的应用程序Gmail Users Messages import 克隆电子邮件但允许更改主题 然后 它使用删除端点删除原始 旧消息Gmail Users Messages remove 我想
  • java字节码-小于int的类型的表示

    在我大学的一个项目中 我直接使用 Java 字节码 浏览 JVM 可用指令列表后 http en wikipedia org wiki Java bytecode instruction listings http en wikipedia