当前位置: 首页 > 知识库问答 >
问题:

包装类对象初始化是如何工作的?[副本]

金子平
2023-03-14

在Java中

Integer i=10;

整数作为包装类。当它只是一个对象引用时,它是如何初始化的?有人能解释一下吗?

共有1个答案

卓俊晖
2023-03-14

声明

Integer i = 10;

是:

Integer i; // Variable declaration
i = 10; // Variable assignment

因此,首先,Java创建了一个名为i变量,允许它引用integer类型的实例。

Integer i = Integer.valueOf(10);

实际上,JLS中没有描述integer.valueOf的用法。它只是说Java必须能够自动将int转换为integer(来自JLS§5.1.7):

如果pint类型的值,则装箱转换将p转换为类和类型integer的引用r,这样r.intvalue()==p

但是大多数JVM实现都使用这种方法(您可以在生成的字节代码中看到这一点)。

 类似资料:
  • 以下是MyService应用程序: 我已经指定了@AllargsConstructor。当我试图为上面的类编写单元测试时,它失败了。以下是我如何编写单元测试: 抛出的错误是: Java:类中的构造函数MyService不能应用于给定类型;必填:未找到参数:原因:实际参数列表和正式参数列表的长度不同 但当我在MyService中显式定义构造函数时,测试就会通过。这里有人能帮我吗?

  • 问题内容: 我只是看了这个SO Post: 但是,哥伦比亚大学教授的笔记按以下方式进行。请参阅第9页。 哪种方法正确?他们似乎在说不同的话。 特别是在注释版本中没有。 问题答案: 这根本不会在Java中编译(因为您正在将数组类型的值分配给非数组类型的变量): 被以下错误拒绝(另请参见:http : //ideone.com/0jh9YE): 要进行编译,请声明其类型,然后在其上循环:

  • 并且让我的所有子类在init时调用?这样做感觉不对,因为用foo完成的工作只会发生一次。

  • 问题内容: 我在用Java工作。 我通常会这样设置一些对象: 问题是:在此示例中是否等于,按原样我可以假定对未初始化的对象进行空检查将是准确的? 问题答案: 正确,未显式初始化的引用类型的静态成员和实例成员都由Java 设置为。相同的规则适用于数组成员。 根据Java语言规范的第4.12.5节: 变量的初始值 程序中的每个变量在使用值之前都必须具有一个值: 每个类变量,实例变量或数组组件在创建时均

  • 初始化类成员的确切时间? 在下面的代码中: B&C类的对象是什么时候创建的?并且它是否保证被创建? 一个专业的app到底该不该用这样的代码?

  • 前面一节的 Fruit 类有两个实变量,分别表述水果的类型和状态.直到为这个类写了一个定制的inspect方法,我们方才了解它不会对一个缺乏属性的水果做出合理的解释.幸运的是,Ruby提供了一种允许实变量总是被初始化的方法. initalize方法 当Ruby创建一个新对象时,它总是会寻找一个名为 initialize 的方法并执行它.因此,我们可以简单通过一个initialize方法向实变量中加