Java中int是如何实现的?

2024-03-27

根据文档Integer class:

Integer 类将基本类型 int 的值包装在对象中。 Integer 类型的对象包含一个类型为 int 的字段。

和文档int :

默认情况下,int 数据类型是 32 位有符号二进制补码整数,其最小值为-2^31和最大值2^31-1.

另外,根据这个Answer https://stackoverflow.com/a/10430634/4738175:

在Java中,每个变量都有一个在源代码中声明的类型。有两种类型:引用类型和原始类型。引用类型是对对象的引用。原始类型直接包含值。

So, my question是:怎么样intJava 中实现的原始类型?Integer作为一个类可以想象创建它的对象。然而再一次Integer类用途int。是通过什么方式int实现为java,以便我们可以使用它并允许执行它的所有算术运算。对此的深入了解将会非常有帮助。

我尝试了许多现有的答案和文章,但没有找到我的问题的答案,其中包括:

  • 原始数据类型 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
  • 整数类 https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html
  • Java:原始数据类型 http://cs.fit.edu/~ryan/java/language/java-data.html
  • Java中int可以为null吗? https://stackoverflow.com/questions/2254435/can-an-int-be-null-in-java
  • 原始数据类型 https://en.wikipedia.org/wiki/Primitive_data_type

PS:

如果我的问题的任何部分不清楚/不正确,请在评论部分告诉我。


int和其他基本类型由Java编译器直接实现JVM https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.2。他们不是班级。它们是值类型,而不是引用类型。

编译器发出 iload、iadd 和 istore 等字节码,不涉及方法调度。

Integer几乎是一个普通的班级。它的实例是在堆上分配的。每个实例包含一个int value.

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

Java中int是如何实现的? 的相关文章

随机推荐

  • 有没有一种方便的方法将 std::pair 包装为新类型?

    我经常发现自己使用 std pair 将两个相关量的逻辑分组定义为函数参数 返回值 一些示例 行 列 标签 值等 很多时候我真的应该滚动我自己的类 而不是仅仅使用 std pair 当事情开始崩溃时 很容易看出 当代码中充斥着 make p
  • React-native-multiple-select:无法读取未定义的属性“getSelectedItemsExt”

    我正在构建一个应用程序并引用这个link https github com toystars react native multiple select我为我的应用程序实现了相同的代码 但出现错误 无法读取未定义的属性 getSelected
  • 更改 Windows 窗体中的组合框边框颜色

    在我的应用程序中 我添加了组合框 如下图所示 我已将组合框属性设置为 cmbDatefilter FlatStyle System Windows Forms FlatStyle Flat 现在我的问题是如何设置组合框的边框样式 使其看起来
  • 传输到 ClientDataset 时的字符串截断

    我正在使用 Firebird 2 1 DevArt 的 DBExpress 驱动程序和 Delphi 2010 我的一些用于 Delphi 2006 的报告停止工作并生成一条错误消息 指示发生了 算术异常 数字溢出或字符串截断 我的代码此时
  • 如何从 Windows 客户端应用程序使用 openAuth?

    我正在考虑将公共 api 集成到现有的 Windows 窗体应用程序中 该 API 需要 openAuth 身份验证 我见过的所有例子都是基于网络的应用程序 如何在客户端应用程序上使用 openAUth thanks 这不是最容易解释的事情
  • 创建跨容器选项卡索引

    我面临着一个似乎无法解决的小问题 问题是在 WinForm 中我有几个容器 TabControls Panels 控件中的 Tab 键顺序工作正常 当然 但现在客户要求更改 taborder 从第一个容器 当前 tabindex 0 0 1
  • 如何创建所有子类的实例

    我有超过 250 个子类需要由它们组成的实例 我不能坐在那里羞涩地粘贴new Class 250次 是否有使用反射来创建类的实例 创建实例时不需要构造函数 谢谢 我真的不明白你的意思 但我尝试猜测 未测试 public class Test
  • 参数“samples”的预期哈希值(获取数组)

    我一直在关注 Railscasts 的嵌套形式和复杂形式的剧集 在以单个表单创建多个模型的过程中 我能够编辑 更新 删除和创建嵌套在批处理模型中的示例模型的记录 我很长时间以来一直在绞尽脑汁 也尝试四处寻找 但找不到任何正确的解决方案来解决
  • 如何离线存储密码

    虽然这是针对Windows Phone 7的 但我想这个原理是通用的 我想在我的应用程序中设置一个密码保护区 但是 我的应用程序完全离线 因此我必须在手机上存储凭据详细信息 我最初的想法是存储密码和盐的哈希值 这是最好的方法吗 如果是这样
  • 更改特定索引而不在 Vuejs 中重新渲染整个数组

    In a Vuejs项目 我有一个array in my 数据对象并将其呈现在视图中v for指示 现在 如果我更改该数组中的特定索引 Vue 会在视图中重新渲染整个数组 有没有办法在不重新渲染整个数组的情况下查看视图的变化 这个问题背后的
  • 如何处理 JSON 字符串中的 unicode 值?

    我正在用 C 编写 JSON 解析器 在解析 JSON 字符串时遇到问题 JSON 规范规定 JSON 字符串可以包含以下形式的 unicode 字符 here comes a unicode character u05d9 我的 JSON
  • 如何获取要执行的 PTX 文件

    我知道如何生成 ptx文件来自 cu以及如何生成 cubin文件来自 ptx 但我不知道如何获得最终的可执行文件 更具体地说 我有一个sample cu文件 编译为sample ptx 然后我使用 nvcc 来编译sample ptx to
  • 如何在Oracle中查找模式名称?当您使用只读用户连接到 SQL 会话时

    我使用只读用户连接到 Oracle 数据库 并且在 sql Developer 中设置连接时使用了服务名称 因此我不知道 SID 架构 如何找到我连接到的架构名称 我正在寻找这个 因为我想要生成 ER 图 https stackoverfl
  • 按方案中的第一个元素对列表列表进行排序

    例如 我正在研究按第一个元素对列表列表进行排序 排序 列表 2 1 6 7 4 3 1 2 4 5 1 1 预期输出 gt 1 1 2 1 6 7 4 3 1 2 4 5 我使用的算法是冒泡排序 我修改了它来处理列表 但是 该代码无法编译
  • jQuery Mobile 范围滑块响应不够灵敏

    各位互联网界的好心人 大家好 我正在尝试使用 jQuery Mobile 滑块 范围 虽然它们工作得相当好并且在桌面浏览器上响应良好 但它们似乎在实际手机 例如 Android 与互联网网页交互时 Android 上使用触摸屏的滑块交互非常
  • Facebook SDK:ApiException:代理应用程序在未事先安装的情况下无法请求发布权限

    我正在努力使用 Android facebook SDK 3 5 riigth ow 我的账户一切都很完美 现在我把这个应用程序给了我的一个朋友 当他登录时 他并没有因为这个失败而被卡住 ApiException The proxied a
  • Azure 表存储将数据导出到 SQL 的平面或 XML 文件

    I am looking for capability to Export data from SQL Azure Azure Table Storage to Some Flat file or XML file so that we c
  • 如何将我的表单放在 css/html 中的图像之上?

    开发者们好 我想问一下如何才能让我的表单出现在我的图片之上 问题是我的表格出现在底部 这是我的屏幕截图 这是我的代码 HTML div class container align center div img src assets img
  • Fabric 不断要求输入密码

    我有 fab 文件 其中包含 env hosts localhost env user code env password searce def mk dirtree sudo mkdir s PROJECT DIR sudo chown
  • Java中int是如何实现的?

    根据文档Integer class Integer 类将基本类型 int 的值包装在对象中 Integer 类型的对象包含一个类型为 int 的字段 和文档int 默认情况下 int 数据类型是 32 位有符号二进制补码整数 其最小值为 2