黑马程序员技术交流社区

标题: 关于byte数组 [打印本页]

作者: wyy283    时间: 2013-7-25 16:57
标题: 关于byte数组
本帖最后由 杨兴庭 于 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.。为什么,求解。

作者: lljwdbklb    时间: 2013-7-25 17:34
第一个答案是你自己new出来的 。第二个答案是你自己调用String.getBytes(),在那个方法里会帮你new出一个新的byte数组 替换掉你原来的那个。
作者: 一木榜公    时间: 2013-7-25 17:41
byte[]bt=new byte[4];
System.out.println(bt.length);
求字节数组的长度,你上面定义是4,所以长度为4;
bt=str.getBytes();
getBytes();返回值是一个字节数组,所以这个时候的bt代表的是新数组,数组长度由字符串str决定。
作者: 冒烟的芒果    时间: 2013-7-25 18:26
前一个结果:4 是你自己定义的数组长度,没有疑问
后一个是通过调用getBytes()方法得到的
getBytes方法的功能是 使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
有9个字节 ,所以结果是9




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