我用toString直接打印数组 输出的是[Ljava.lang.String;@de6ced 这是数组的内存地址吗?
网上找了几天没有答案,有的说版本低 ,可我的是1.6的 而且试了好多1.5以后的方法都正常,此方法是从1.5开始支持的
我快崩溃了 高手帮帮忙 在线等import java.util.*;
public class aaa
{
public static void main(String[] args) throws Exception
{
        String aaaa[] = {"dd","aa"};System.out.println(aaaa);  //toString 直接打印数组 从以下版本开始:jdk1.5  失败System.out.println(Integer.valueOf(4));  //valueOf(int i) 从以下版本开始:jdk1.5  成功        String ff="";
System.out.println(ff.isEmpty());  //valueOf(int i) 从以下版本开始:jdk1.6  成功        List<Integer> myIntList = new LinkedList<Integer>();
        myIntList.add(new Integer(0));
System.out.println(myIntList.get(0));  //泛类型 好像是从1.5以后  成功         Long a = 2l;
        Long b = 2l;
System.out.println(a == b);  //-128~127用==比较 好像也是1.5以后  成功
        Long c = 128l;
        Long d = 128l;
System.out.println(c == d);System.out.println(System.getProperty("java.version"));
}
}
打印结果:
D:\javac>javac aaa.javaD:\javac>java aaa
[Ljava.lang.String;@de6ced
4
true
0
true
false
1.6.0_12

解决方案 »

  1.   

    是内存地址。默认打应内存地址。你可以重写toString方法。
      

  2.   

     String aaaa[] = {"dd","aa"};
    System.out.println(Arrays.toString(aaaaa));  
      

  3.   

    toString()方法来自于Object 源码是这样的
        public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }
    也就是说如果你不重写这个方法 它被调用时将打印的是这个类的完整路径名+对象的哈希地址而[Ljava.lang.String;@de6ced 这种形式 表明这是一个数组对象 说明是一个String的数组要想打印数组里的内容 必须用Arrays.toString();方法 把数组传给它就行了
      

  4.   

    谢谢closewbq 原来Java是这么用的 
    还是ASP的思路 谢谢了 
    怎么给分呀
      

  5.   

    String aaaa[] = {"dd","aa"}; 
    System.out.println(Arrays.toString(aaaaa));  
    public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。 
    Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: getClass().getName() + '@' + Integer.toHexString(hashCode())
     
    返回:
    该对象的字符串表示形式。
      

  6.   

    xiaoniqiu zl3450341
    谢谢你们关注
    已经结贴 
    不能给你们分了