我遇到了一个奇怪的问题,不知道它叫什么,所以很难找到相关的信息,因此我在这里提问。
在Java中,如果你创建一个任意类型的数组,并调用getClass方法,你会得到一个奇怪的返回值。我想知道为什么会出现这种特殊的返回值,以及它的含义是什么。
以下是代码示例:
byte[] me = new byte[1];
int[] me2 = new int[1];
double[] me3 = new double[1];
float[] me4 = new float[1];
String[] me5 = new String[1];
Integer[] me6 = new Integer[1];
System.out.println(me.getClass());
System.out.println(me2.getClass());
System.out.println(me3.getClass());
System.out.println(me4.getClass());
System.out.println(me5.getClass());
System.out.println(me6.getClass());
输出结果为:
class [B
class [I
class [D
class [F
class [Ljava.lang.String;
class [Ljava.lang.Integer;
int[] a = new int[3]; System.out.println(a.getClass().getName());
- Ted Hoppint[].class
是完全合法的。 - arothint
并不是一个合适的对象(尽管自动装箱除外),但它仍然有一个类。如果你想在技术上讲究一点,每个对象(和原始类型)只是为给定类型分配的连续内存块。 - aroth