首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问关于String.getBytes

2012-01-12 
请教关于String.getBytes我做了以下实验:Java codepublic static void main(String[] args) throws Except

请教关于String.getBytes
我做了以下实验:

Java code
public static void main(String[] args) throws Exception {        String aaa="我";        System.out.print(aaa.getBytes("utf-8"));  //输出 :[B@35ce36            }


Java code
public static void main(String[] args) throws Exception {        String aaa="我";        System.out.print(aaa.getBytes("gbk"));   //输出 :  [B@35ce36            }



Java code
public static void main(String[] args) throws Exception {        String aaa="我";        System.out.print(aaa.getBytes("gbk"));        System.out.print(aaa.getBytes("utf8"));                  //输出:    [B@35ce36[B@757aef    }


我想请问下。。同样是输出为什么改变getBute的编码方式 分别输出的情况下~输出结果都是一样的。。
但是我把他们放一起 输出结果却有不一样了。。怪事~


[解决办法]
唉...那个内存刚好都从那里分配吧
[解决办法]
不明白呀,顶了
[解决办法]
aaa.getBytes("gbk")返回的是一个对象,输出的toString()默认形式是A@B,A是对象名称,B是内存地址
[解决办法]
探讨
aaa.getBytes("gbk")返回的是一个对象,输出的toString()默认形式是A@B,A是对象名称,B是内存地址

[解决办法]
每次调用getBytes方法都要为数组在堆区分配内存吧.而你前两个实验应该说明分配内存时刚好在同一个地址,当你同时调用两个的时候虽然内容一样,但是分配了两个不同的内存块,地址也就不同了,所以输出两个不同地址
[解决办法]
内存地址问题。。

热点排行