栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【JAVA】char[]的输出,以及对char[]是否为一个类的疑惑

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【JAVA】char[]的输出,以及对char[]是否为一个类的疑惑

   char[] c = {'1', '2'};
        System.out.println(c);
        System.out.println(c + "");

Output:

debug进行源码分析:

System.out.println(c);
public void println(char x[]) {
    synchronized (this) {
        print(x);
        newLine();
    }
}
public void print(char s[]) {
    write(s);
}

System.out.println(c + "");
public StringBuilder() {
    super(16);
}
AbstractStringBuilder(int capacity) {
    value = new char[capacity];
}
public StringBuilder append(Object obj) {
    return append(String.valueOf(obj));
public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}
public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

总结

因为运算符【+】的存在,且操作数之一为String(""),导致调用了Object类(char[]属于Objectl类?存疑)的toString方法,返回了class名和hash值,而非字符

遗留问题
 System.out.println(c.toString());

的确跳转到了Object类的toString,getClass().getName()返回了【[C】

[C是什么类?char[]吗?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/985316.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号