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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wyy283 中级黑马   /  2013-7-25 16:57  /  813 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-25 23:18 编辑

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根

String str="123456789";
byte[]bt=new byte[4];
System.out.println(bt.length);
bt=str.getBytes();
System.out.println(bt.length);

}

}


打印的结果是4,9.。为什么,求解。

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 这个是来骗分的还是真的不会?努力看视频吧.

查看全部评分

3 个回复

正序浏览
前一个结果:4 是你自己定义的数组长度,没有疑问
后一个是通过调用getBytes()方法得到的
getBytes方法的功能是 使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
有9个字节 ,所以结果是9

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
byte[]bt=new byte[4];
System.out.println(bt.length);
求字节数组的长度,你上面定义是4,所以长度为4;
bt=str.getBytes();
getBytes();返回值是一个字节数组,所以这个时候的bt代表的是新数组,数组长度由字符串str决定。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
lljwdbklb 来自手机 中级黑马 2013-7-25 17:34:22
沙发
第一个答案是你自己new出来的 。第二个答案是你自己调用String.getBytes(),在那个方法里会帮你new出一个新的byte数组 替换掉你原来的那个。来自: iPhone客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马