黑马程序员技术交流社区

标题: 为什么只有字符数组的数组名无法输出地址值,同时字符元素的默认值'\u0000'没有输出? [打印本页]

作者: chenglong25    时间: 2016-6-30 23:00
标题: 为什么只有字符数组的数组名无法输出地址值,同时字符元素的默认值'\u0000'没有输出?
代码如下:
class A {                          
        public static void main(String[] args) {
                String[] arr = new String[5] ;
                System.out.println(arr);
                System.out.println(arr[0]);
                System.out.println("-----------------------");

                char[] arr1 = new char[5] ;
                System.out.println(arr1);             //没有输出
                System.out.println(arr1[0]);          //没有输出
                System.out.println("-----------------------");

                int[] arr2 = new int[5] ;
                System.out.println(arr2);
                System.out.println(arr2[0]);
        }
}



输出结果为:
[Ljava.lang.String;@1175422
null
-----------------------





-----------------------
[I@949f69
0


作者: itismyhao    时间: 2016-7-1 04:26
char类型数组可以输出地址值的,同时字符元素的默认值'\u0000'也是有输出,为空格。
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 char[] ch = new char[5];
  6.                 System.out.println("输出ch="+ch);
  7.                 for(int i=0;i<ch.length;i++)
  8.                 {
  9.                         System.out.print(ch[i]+",");
  10.                 }
  11.         }
  12. }
复制代码

控制台输出结果:
输出ch=[C@1db9742
第二行复制不过来,给你打出来
, , , , ,
空格逗号 空格逗号 空格逗号 空格逗号 空格逗号
作者: itismyhao    时间: 2016-7-1 04:27
itismyhao 发表于 2016-7-1 04:26
char类型数组可以输出地址值的,同时字符元素的默认值'\u0000'也是有输出,为空格。

控制台输出结果:

关于string,刚转学java,在补java基础没用到,不敢误人子弟。
作者: chenglong25    时间: 2016-7-1 13:18
没有输出默认字符值可以理解为实际输出了空格,但没有识别.
但数组地址输出时如果去掉("输出ch="+)后为什么没有输出地址?按照道理应该也是会有地址值输出的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2