java 输出byte[]出现乱码
bytebytes=10;System.out.println(bytes);这个输出为:10然而,byte[]ba={10,50};System.out.println...
byte bytes=10;
System.out.println(bytes);
这个输出为:10
然而,
byte[] ba={10,50};
System.out.println(ba);
结果输出并不是1050,而是[B@18a992f这样的乱码。
java不能输出byte[],还是别的原因?如果想让它输出byte[]时得到想要的1050的结果该怎么办呢?
哦,我明白了。
对于byte[][],
byte[][] ba={{10},{50,10,2,3}};
for(int i=0;i<ba.length;i++){
for(int j=0;i<ba[i].length;j++){
System.out.println(ba[i][j]);
} 展开
System.out.println(bytes);
这个输出为:10
然而,
byte[] ba={10,50};
System.out.println(ba);
结果输出并不是1050,而是[B@18a992f这样的乱码。
java不能输出byte[],还是别的原因?如果想让它输出byte[]时得到想要的1050的结果该怎么办呢?
哦,我明白了。
对于byte[][],
byte[][] ba={{10},{50,10,2,3}};
for(int i=0;i<ba.length;i++){
for(int j=0;i<ba[i].length;j++){
System.out.println(ba[i][j]);
} 展开
展开全部
byte[] ba数组可以理解成是byte的类,ba的是个对象,10,50可以看出对象的二个成员变量,你要调用对象的某个成员变量,有对应的方法,那么要访问数组里面的数据就要要用ba[i]这个方法才可以调用。ba在栈里面存放的是hashcode码,这个码可以在堆内存里面找到一块空间,里面存放这10和50这2个数,System.out.println(ba);这个句子只能输出ba里面存的hashcode码,所以你只能得到[B@18a992f这个码。
展开全部
[B@18a992f 是 ba对象调用toString(),会默认调用Object的toString();
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
是类名+@+hashCode(),hashCode()也是Object的,就是内存地址。
[B@18a992f 是把数组看成一个新类型,但是没有名称,JVM给他起个名,它中的‘[’为数组的意思,B为基础类型byte,如果为类类型的数组时,如String[]就是[Ljava.lang.String,用L+类路径
byte[] ba={10,50};
System.out.println(Arrays.toString(ba));
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
是类名+@+hashCode(),hashCode()也是Object的,就是内存地址。
[B@18a992f 是把数组看成一个新类型,但是没有名称,JVM给他起个名,它中的‘[’为数组的意思,B为基础类型byte,如果为类类型的数组时,如String[]就是[Ljava.lang.String,用L+类路径
byte[] ba={10,50};
System.out.println(Arrays.toString(ba));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
byte[] ba={10,50};
for(int i=0;i<ba.length;i++){
System.out.println(ba[i]);
}
======================================================
你那样是输出byte这个数组在内存中的一些信息
for(int i=0;i<ba.length;i++){
System.out.println(ba[i]);
}
======================================================
你那样是输出byte这个数组在内存中的一些信息
追问
谢谢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在数组里面的东西必须要一个一个的取出来在输啊。byte[] ba={10,50};
for(int i=0;i<ba.length;i++){
System.out.println(ba[i]);
}
我觉得这种方法就很好啊
for(int i=0;i<ba.length;i++){
System.out.println(ba[i]);
}
我觉得这种方法就很好啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的是数组本身的信息,
想得到1050 循环输出
想得到1050 循环输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询