[Ljava.lang.String是一个字符串数组的字节码表示

[Ljava.lang.String是一个字符串数组的字节码表示

打印一个字符串数组的话,会发现

String[] arr = new String[10];
// String[] arr = {"yanggb", "huangq"};
System.out.println(arr); // [Ljava.lang.String;@3e5084c9

这里直接打印了数组名,因为数组是引用数据类型,数组名是数组的管理者,而非所有者。

下面是打印出来的数组名([Ljava.lang.String;@3e5084c9)的含义解释。

【[】:表示一维数组 。
【[[】:表示二维数组 。
【L】:表示一个对象 。
【java.lang.String】:表示对象的类型 。
【@】:后面表示该对象的hashCode。

因此访问数组元素时,需要另外使用for循环遍历数组,不能直接通过数组名访问所有数组元素。

"没有人是天生强大,耐抗折磨和压力的。"