输出是什么意思...
如果我们打印'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
实现的结果:
类toString
的Object
方法返回一个字符串,该字符串由对象作为实例的类的名称,符号字符“ @”和对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回的字符串等于:
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 - javaprivate static Coordinate[] getCircleCoordintaes() { Coordinate coordinates[] = {new Coordinate(0, 0)}; return coordinates; } 以上程序工作正常。在上面的程序中,返回的坐标数组首先初始化了数组使用这条线Coordinate coordi…
Java:线程池如何将线程映射到可运行对象 - java试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …