在控制台上打印数组参考变量 - java

输出是什么意思...
如果我们打印'intarray'我们会得到一些哈希码...
&与“ floatarray”相同
但是如果我们打印'chararray'我们什么都不会得到
以下数据是什么意思?

class Test
{
    public static void main(String []aeg)
    {
        int []intarray = new int[5];
        char []chararray = new char[5];
        float []floatarray = new float[5];
        System.out.println(intarray);
        System.out.println(chararray);
        System.out.println(floatarray);
    }
 }

输出从这里开始

在控制台上打印后,我们得到以下输出...。

      F:\Mehnat\my sc\By me\ArrayList\2\2>javac Test.java
      F:\Mehnat\my sc\By me\ArrayList\2\2>java Test
      [I@546da8eb

      [F@6b6d079a

输出在这里结束

参考方案

您正在看到此行为,因为PrintStream.println具有一个采用char[]的重载。从该方法的documentation中:

打印字符数组,然后终止该行。

当然,数组的元素尚未初始化,因此它们都是默认的char,即'\u0000',即空字符。如果使用可见字符填充数组,则可以看到结果:

char[] charArray = new char[] {'a', 'b', 'c', 'd', 'e'};
System.out.println(charArray); //prints "abcde"

其他方法调用使用的是println(Object),它会打印对象的toString的结果。数组不会覆盖toString,因此您会看到默认Object.toString实现的结果:

toStringObject方法返回一个字符串,该字符串由对象作为实例的类的名称,符号字符“ @”和对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回的字符串等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())

作为一种解决方法,Arrays实用工具类提供了toString辅助方法来获取数组的String表示形式。例如:

int[] intArray = new int[] {1, 2, 3, 4, 5};
char[] charArray = new char[] {'a', 'b', 'c', 'e', 'f'};
float[] floatArray = new float[] {1.0F, 1.1F, 1.2F, 1.3F, 1.4F};
System.out.println(Arrays.toString(intArray));   // [1, 2, 3, 4, 5]
System.out.println(Arrays.toString(charArray));  // [a, b, c, e, f]
System.out.println(Arrays.toString(floatArray)); // [1.0, 1.1, 1.2, 1.3, 1.4]

Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…

Java-固定大小的列表与指定初始容量的列表之间的差异 - java

我在理解这一点上遇到了问题。当我们做 List<Integer> list = Arrays.asList(array); 我们不能在该列表上使用添加,删除之类的方法。我知道Arrays.asList()返回固定大小的列表。我不明白的是,如果我们创建一个具有指定初始容量的列表,例如List<Integer> list2 = new A…

Java-搜索字符串数组中的字符串 - java

在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…

从方法返回数组-Java - java

private static Coordinate[] getCircleCoordintaes() { Coordinate coordinates[] = {new Coordinate(0, 0)}; return coordinates; } 以上程序工作正常。在上面的程序中,返回的坐标数组首先初始化了数组使用这条线Coordinate coordi…

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …