开发者社区 问答 正文

关于String对象的问题

有一段代码

char[] animal = {'c', 's'};
String animals = new String(animal);
System.out.println(animals.toString());
system.out:cs

请教,从数组{'c', 's'}到输出“cs”,具体是怎么转化的,他的原理是什么。

展开
收起
蛮大人123 2016-03-12 15:50:01 2035 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    阅读源码即可~~Java库是开放源码的
    显然你需要阅读String构造函数的部分。
    以下源码来自java 1.8.0_91
    在String.java第113行可以看到,String内部是用名为value的字符数组实例变量储存字符串的内容

    `/** The value is used for character storage. */
    private final char value[];`

    在第165行,一个参数为字符数组的构造函数,表示了用这个构造函数创建新String对象时,实际就是将参数进行浅拷贝之后,赋值给value。

      public String(char value[]) {
            this.value = Arrays.copyOf(value, value.length);
        }
    2019-07-17 19:01:06
    赞同 展开评论
问答标签:
问答地址: