数组在Java中是基元类型还是对象?

Java中的数组 这是一个物体 .现在的问题是,这怎么可能?这背后的原因是什么?在Java中,我们可以使用new操作符创建数组,我们知道每个对象都是使用new操作符创建的。因此我们可以说数组也是一个对象。现在问题也出现了,每次我们为一个类创建一个对象,那么数组的类是什么?

null
  • 在Java中,每个数组类型都有一个类,因此int[]和float、double等都有一个类。
  • 数组类型的直接超类是Object。每种数组类型都实现了Cloneable和java接口。伊奥。可序列化。
  • 在Java编程语言中,数组是对象(§ 4.3.1 )动态创建,并可分配给Object类型的变量(§4.3.2)。类对象的所有方法都可以在数组上调用。

对于每种数组类型,都有相应的类可用,这些类是java语言的一部分,程序员级别无法使用。要了解任何数组的类,我们可以使用以下方法:

// Here x is the name of the array.
System.out.println(x.getClass().getName()); 

// Java program to display class of
// int array type
public class Test
{
public static void main(String[] args)
{
int [] x = new int [ 3 ];
System.out.println(x.getClass().getName());
}
}


输出:

[I 

注: [I这是这个数组的类,1[(方括号),因为它是一维的,I代表整数数据类型。 以下是为某些数组类型指定相应类名的表格:-

Array type             Corresponding class Name
int[]                     [I
int[][]                   [[I
double[]                  [D
double[][]                [[D
short[]                   [S
byte[]                    [B
boolean[]                 [Z

在Java编程语言中,数组是动态创建的对象,可以分配给Object类型的变量。类对象的所有方法都可以在数组上调用。

// Java program to check the class of
// int array type
public class Test {
public static void main(String[] args)
{
// Object is the parent class of all classes
// of Java. Here args is the object of String
// class.
System.out.println(args instanceof Object);
int [] arr = new int [ 2 ];
// Here arr is also an object of int class.
System.out.println(arr instanceof Object);
}
}


输出:

true
true

参考: https://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html

本文由 比沙尔·库马尔·杜比 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享