黑马程序员技术交流社区

标题: 求解 [打印本页]

作者: 班志国    时间: 2012-12-1 20:56
标题: 求解
  1. System.out.println(new String(buf,0,num));
复制代码
new String() 不理解 为啥 new 一个 就能打印出来啊
作者: 王震阳老师    时间: 2012-12-1 21:26
  1. String str=new String(buf,0,num);
  2. System.out.println(str);
  3. 上面那个代码只是把我写的两句放在一起了,其实是一样的。
复制代码

作者: 黑马_张伟    时间: 2012-12-1 21:33
你是用字符数组构造了一个String的对象,然后打印String对象。打印的时候调用String对象的toString方法,返回的就是它自己(本身就是一个字符串),然后就输出了。说这么多,其实就是打印一个字符串,和System.out.println("abcd");是一样的
作者: 朝花夕拾    时间: 2012-12-1 23:11
new String实际上是创建了一个String类的匿名对象对象,你在输出时底层默认调用String的toString()方法,返回值就是该字符串,就打印了
作者: 王得新    时间: 2012-12-3 20:10
public static void main(String[] args) {
        //创建一个数组,这里举的例子是byte数组
        byte[] buf=new byte[]{12,2,43,-12,-23};
        //获取数组的长度
        int num=buf.length;
        //将字节数组转换为字符串,从0位置开始,到num结束
        String str=new String(buf,0,num);
        System.out.println(str);
        System.out.println(str.toString());
        //和上面的是等价的只不过是匿名的而已,后面有toString()方法,就是打印String对象的一个具体内容
        //toString()有没有都无所谓,重要的是该类复写了Object中的toSring()方法,很明显Sting已经复写了
        System.out.println(new String(buf,0,num).toString());
    }







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