有以下程度段:
int i = 100;
String s = String.valueOf(i);
System.out.pintln(s);
byte[] b = s.getBytes();
System.out.pintln(b);
怎么运行结果是这样: 100
[B@a90653
int i = 100;
String s = String.valueOf(i);
System.out.pintln(s);
byte[] b = s.getBytes();
System.out.pintln(b);
怎么运行结果是这样: 100
[B@a90653
解决方案 »
- 怎样用java实现钩子
- java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 高手请教下 ,怎么解决
- 求助 Java char类型
- 怎样倒金字塔递归列出指定文件的树状目录结构
- 请问如何将internalFrame的窗口恢复到原来大小?
- Java 网络 高手请进!!!!!!!!!!!
- 如何从String转换到一个InputStream?
- 急求一个c(n,r)的组合排序
- 我用jcreator写的java文件,在其下能编译执行,而类文件在dos下能编译不能运行,错误提示:"Exception in thread "main" java.lang.NoClas
- HY,关于输入法的问题你解决了吗?
- 散分,庆祝lixiaoxue85荣升版主
- 求好心人,帮初学者看看这个HashMap为什么打印不出来呢
[B@a90653 这里b的类型是byte[], 在Java中数组也是对象, 是对象就继承了Object的toString()方法, System.out.println(b)就是调用b.toString(), 然后将结果输出到控制台, 数组的toString()实现就是这样..
所以不能像输出字符串一样,输出字符串的值,
而只能按对象输出,因为对象继承了object的toString()方法,所以将
用来标识对象的那个值输出,这个我也不是太清楚,如果说的有错,请不要见怪不过我还是建议楼主,没事多看看API
String elementTypeName = null;
if(arrayTypeName.length() == 2)
{
if(arrayTypeName.equals("[I"))
{
elementTypeName = "int";
}
else if(arrayTypeName.equals("[J"))
{
elementTypeName = "int";
}
else if(arrayTypeName.equals("[B"))
{
elementTypeName = "byte";
}
else if(arrayTypeName.equals("[S"))
{
elementTypeName = "short";
}
else if(arrayTypeName.equals("[C"))
{
elementTypeName = "char";
}
else if(arrayTypeName.equals("[F"))
{
elementTypeName = "float";
}
else if(arrayTypeName.equals("[D"))
{
elementTypeName = "double";
}
else if(arrayTypeName.equals("[Z"))
{
elementTypeName = "bool";
}
else
{
throw new RuntimeException("没有此数组类型"+ arrayTypeName + "].");
}
}
else
{
elementTypeName = arrayTypeName.substring(2,arrayTypeName.length() - 1);
} return elementTypeName;
}
如果b没有重写Object类的toString()方法的话,
那么将调用Object类的toString(),代码如下。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}返回的是类型名称@hash码。
对于一般数组就是[+表示,对象数组则是[J+类型名称。