A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 班志国 中级黑马   /  2012-12-1 20:56  /  1131 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. System.out.println(new String(buf,0,num));
复制代码
new String() 不理解 为啥 new 一个 就能打印出来啊

4 个回复

倒序浏览
  1. String str=new String(buf,0,num);
  2. System.out.println(str);
  3. 上面那个代码只是把我写的两句放在一起了,其实是一样的。
复制代码
回复 使用道具 举报
你是用字符数组构造了一个String的对象,然后打印String对象。打印的时候调用String对象的toString方法,返回的就是它自己(本身就是一个字符串),然后就输出了。说这么多,其实就是打印一个字符串,和System.out.println("abcd");是一样的
回复 使用道具 举报
new String实际上是创建了一个String类的匿名对象对象,你在输出时底层默认调用String的toString()方法,返回值就是该字符串,就打印了
回复 使用道具 举报
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());
    }


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马