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

对象类引用如何接收基元类型数组基地址?

贺自明
2023-03-14
class Demo{
    static void receive(Object temp){
    System.out.println(temp);
    }
}


class Test{
    public static void main(String ... a){
    int arr[] = new int[5];
    Demo.receive(arr);
    }
}

请参阅输出。。

问题在于Demo类中的方法“receive(Object temp)”如何接收基元整型数组的基址。

如果对象类引用变量可以接收基元类型数组基址,那么有一点很清楚,基址必须是对象类类型或对象类类型的子类。。

那么,是否也存在用于基元类型数组地址的类?

共有3个答案

阎志义
2023-03-14

正如您可能知道的,对象类是Java中所有对象的超类。此外,新操作符的功能与创建对象和返回该对象的引用相同。因此,数组创建类似于对象创建。若你们想找到基本数组类型的类,你们应该选择包装类http://docs.oracle.com/javase/tutorial/java/data/numberclasses.html.也许会有帮助。非常感谢。

子车睿
2023-03-14

在Java中,数组也是对象int是原语,而不是int数组。因此,您可以在需要对象的位置传递数组。

接下来,在MyClass@5db9742后面的数字表示对象的哈希代码。

单勇
2023-03-14

问题在于Demo类中的方法“receive(Object temp)”如何接收基元整型数组的基址。

Java不允许纯Java应用程序查看或操作地址。

所以答案是它不能。

如果您真的需要获取一个对象(包括一个数组)的地址,那么就有可能从纯Java跳出到JVM实现中;e、 g.使用JNI或JNA调用本机代码,或使用Unsafe类。但是如果你这样做,你需要非常小心。一个错误就可以使JVM硬崩溃!!

此外,你不应该需要在正常的程序中这样做。

如果对象类引用变量可以接收基元类型数组基址,那么有一点很清楚,基址必须是对象类类型或对象类类型的子类。

如果您试图说(例如)int[]对象的子类型,那么这是正确的。但你不需要求助于涉及“基址”的扭曲逻辑来推断。它实际上是在Java语言规范中指定的。

例如:

4.3.2. 类对象

类Object是所有其他类的超类(§8.1.4)。

所有类和数组类型继承(§8.4.8)类对象的方法。。。

JLS中还有更多关于对象、类、类型和数组之间关系的内容。

 类似资料:
  • 本文向大家介绍js对象类型,基本对象类型以及引用对象类型的区别?相关面试题,主要包含被问及js对象类型,基本对象类型以及引用对象类型的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 分为基本对象类型和引用对象类型 基本数据类型:按值访问,可操作保存在变量中的实际的值。基本类型值指的是简单的数据段。基本数据类型有这六种:undefined、null、string、number、bool

  • 我有一个从数组中检索元素的方法,我想对几个基元类型(int[]、double[]、...)使用相同的方法。方法如下: 但是,如何获取数据的类型以使用适当的基元类型实例化selectedElements数组? 非常感谢

  • 考虑一个具有的API,如下所示: 很简单,只有页面大小和跳过计数属性。 此外,现在我还有一些类,它们也包含但未分页。 在我的测试中,我希望他们都能实现一个接口,这样我就可以用一些更基本的测试来生成一个通用的基本测试类。为此,我添加了我认为会起作用的内容: 我将PagedResults更改为: 错误 但现在编译器抱怨PagedResultBase继承的所有地方的使用情况(?)从。 但是,如果我将接口

  • 我使用下面的代码来查找反射中的类成员是原语和某个对象,我的问题是有一种方法来识别字段是否是类型原语、对象、类引用,因为我想根据类型调用特定的方法。例如,如果field是原语,则调用HandleErimition,如果field是其他类型引用(在下面的示例中是SalesOrderItemPK,PrimaryKey;),则调用方法handleClassReferance等 只是为了理解,我需要获得类,

  • 在之前的 JavaScript 基础文章中(编号 02、编号 07),我们介绍过,变量有以下数据类型: 基本数据类型(值类型):String 字符串、Number 数值、Boolean 布尔值、Null 空值、Undefined 未定义。 引用数据类型(引用类型):Object 对象。 本文,我们针对这两种类型,做个详细介绍。我们先来看个例子。 基本数据类型举例: var a = 23;