Java println(charArray + String)vs println(charArray)

Mik*_*e P 5 java arrays string concatenation char

我有

char c1 = 'S';           // S as a character
char c2 = '\u0068';      // h in Unicode
char c3 = 0x0065;        // e in hexadecimal
char c4 = 0154;          // l in octal
char c5 = (char) 131170; // b, casted (131170-131072=121)
char c6 = (char) 131193; // y, casted (131193-131072=121)
char c7 = '\'';          // ' apostrophe special character
char c8 = 's';           // s as a character
char[] autoDesignerArray = {c1, c2, c3, c4, c5, c6, c7, c8};
Run Code Online (Sandbox Code Playgroud)

System.out.println(autoDesignerArray + "Mustang"); 
Run Code Online (Sandbox Code Playgroud)

输出:[C @ c17164Mustang

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

输出:谢尔比

当我将char数组与字符串连接起来时,我不明白为什么我得到奇怪的输出.什么是"[C @ c17164"?记忆中的位置?当我用字符串连接时,为什么我会得到它,但是当我单独打印它时,我会得到我期望的结果?

vah*_*eza 7

表达式System.out.println(X + Y)等于表达式 System.out.println(X.toString() + Y.toString()).

当您调用System.out.println(autoDesignerArray + "Mustang") autoDesignerArray.toString()(哪个"[C@c17164")连接 "Mustang"并打印结果时.