java 字符数组问题

三六五加一 2013-07-15 04:04:59
定义一个字符串数组,

char[] c = {'a','b','c'};
System.out.println(c);
//输出abc
System.out.println(c+"");
//输出[C@6bbc4459
System.out.println(c.toString());
//也是输出[C@6bbc4459

如果定义
int[] arr={1,2,3,};
那么arr是对象,为什么char[] 不是当做对象来处理的,求高手解释。
...全文
172 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huntor 2013-07-16
  • 打赏
  • 举报
回复
System.out 是一个 PrintStream 的实例,PrintStream 提供了 println(char[] x) / print(char[] s) 方法。没有提供参数类型是int[]的方法。
摆烂办不到 2013-07-15
  • 打赏
  • 举报
回复
当然也要看版本 貌似有的版本没有源码
摆烂办不到 2013-07-15
  • 打赏
  • 举报
回复
JDK自带源码的 楼主可以去找找 好像名字叫src.zip
ffc253605481 2013-07-15
  • 打赏
  • 举报
回复
引用 楼主 quanbove 的回复:
定义一个字符串数组,

char[] c = {'a','b','c'};	
System.out.println(c);
//输出abc	
System.out.println(c+"");
//输出[C@6bbc4459
System.out.println(c.toString());
//也是输出[C@6bbc4459
如果定义 int[] arr={1,2,3,}; 那么arr是对象,为什么char[] 不是当做对象来处理的,求高手解释。
建议去看看String类的基层实现...
HinanaiTenshi 2013-07-15
  • 打赏
  • 举报
回复
1. 3条sysout调用了2个不同的方法 2. arr只是个句柄而非对象 3. 数组在java中作为特殊的对象加以处理
逍遥jc 2013-07-15
  • 打赏
  • 举报
回复
char[] 是字符数组。另外记得去看看toString是怎么实现的。
lcf 2013-07-15
  • 打赏
  • 举报
回复
char[]是对象,可以想象问题应该出在println的重载方法上。JDK里面的实现太复杂。。懒得追溯了。。最后会调用这个的implWrite函数: http://www.docjar.com/html/api/sun/nio/cs/StreamEncoder.java.html

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧