int数组是什么类?

Ank*_*ava 4 java class object

问题1:我有一个疑问,如果我们只能创建类的对象,那么我们如何能够创建原始数据类型的对象,例如int,char等。

问题2:现在假设Ankit是一个类,如果我写

Ankit a=new Ankit();
System.out.println(a.getClass().getName());
Run Code Online (Sandbox Code Playgroud)

它会给我 a 的类名。另外如果我写

System.out.println(Ankit.class);
Run Code Online (Sandbox Code Playgroud)

然后它也会给出类名。但是如果我写

int ar[]=new int[10];
System.out.println(ar.getClass().getName());
System.out.println(int.class); 
Run Code Online (Sandbox Code Playgroud)

然后我得到的输出为:

[我和int

为什么这样?在这里我也应该得到与 int ar 的类名相同的输出那么为什么不同的输出以及什么是 [I?

Erw*_*idt 5

您的第二个片段与第一个片段的作用不同。相反,您正在打印

  1. int 数组的类名
  2. 原始 int 的类名

您应该将代码片段的最后一行更改为:

System.out.println(int[].class); 
Run Code Online (Sandbox Code Playgroud)

使其打印与上面一行相同的内容。

关于问题的第二部分:这就是 java 表示数组的类名的方式。

  • 一维数组int[I
  • 二维数组int[[I
  • 您的班级的一维数组Ankit[LAnkit;(您可以使用 观察System.out.println(Ankit[].class);