知者为师!
在此请教各位老师一个问题,(这个问题已经百度过,但没有找到对应的答案)如下:
今天解决力扣算法题的时候自己发现的一个从来没有仔细研究的问题
先上关键代码
char[] c = str.toCharArray();//该字符数组中有7个字符
str = c.toString();
str1 = Arrays.toString(c);
System.out.println( str.length()); //返回str的长度是11
System.out.println("str= " + str); //直接打印str输出的是地址值[C@15db9742
System.out.println( str1.length()); //返回str1的长度是18
System.out.println("str1= " + str1); //直接打印str1输出的是str1= [9, 0, 1, 0, 0, 0]
问题如下:
1.为什么直接使用str = c.toString();后打印str的值获取的是一个地址值?
2.为什么使用str1 = Arrays.toString(c);后打印str1的长度是18?这18位的长度是7个字符加11位地址值吗?
3.直接使用c.toString();和 Arrays.toString(c);有什么区别?