数组定义为{}与null  有区别吗

解决方案 »

  1.   

    {}:分配内存空间;
    null : 不分配内在空间。
      

  2.   

    {}意思是已经分配一个空间,就是说实例化了,null  没有实例化,不指向任何对象,没分配空间
      

  3.   


    对,{}这个是分配了空间的,引用指向了内存的一段空间,而赋值为null的话,引用就没有指向内存空间,没有分配空间
      

  4.   

    有区别的
    确实{}分配了空间
    起码是对数组这个对象本身分配了
    null没有分配
    只是定义了一个符号罢了。
      

  5.   

    int []x={};
    System.out.println(x==null);//false
      

  6.   

    数组定义为{} 给它分配了一个内存空间
    但是数组定义位 null的话 则只是 定义了一个指针
    内存分为堆和笺碱 嘛
    指针只存在于堆中 而不存在于 笺 
    堆中用于存放指针  笺中用于存放值
      

  7.   

    有区别的 
    确实{}分配了空间 
    起码是对数组这个对象本身分配了 
    null没有分配 
    只是定义了一个符号罢了。
      

  8.   

    有区别的  
    确实{}分配了空间  
    起码是对数组这个对象本身分配了  
    null没有分配  
      

  9.   

    {}:给数组分配了内存空间,但是这个数组是空的,没有任何元素;
    null : 不分配内在空间,只是声明了一个可以指向数组的引用。 
      

  10.   

    请参看我的示例代码
    //:TestArray.java
    public class TestArray {
        public static void main(String[] args) {
            int[] a = {};
            int[] b = null;
            try {
                System.out.println("{ }分配内存\ta.length="+a.length);
            } catch(Exception e) {
                System.out.println("{ }没有分配内存");
            } finally {
                try {
                    System.out.println("null分配内存\tb.length="+b.length);
                } catch(Exception e) {
                    System.out.println("null没有分配内存");
                }
            }
        }
    }运行结果为:
    { }分配内存      a.length=0
    null没有分配内存
      

  11.   

    怎么说没区别?区别大了!一个是数组,一个是null!
    int[] arr = { };
    对它做范围内遍历,不可能抛出异常,而如果
    int[] arr = null;
    异常就抛出来了。
      

  12.   

    Integer i = null;
    Integer i = 0;有区别吗?
      

  13.   

    int[] arr = { };  给了你遥控器,也给了电视你
            |      |
         遥控器  电视int[] arr = null; 给了你遥控器,没有给电视你
            |        
         遥控器总结:你连电视都没有,你拿“遥控器”是没有用的 
      

  14.   

    是有区别的,一个已经实例化了一个数组,而另一个没有实例化,对null数组求长度会抛出空指针异常的
      

  15.   

    null时不分配内在空间,只是声明了一个可以指向数组的引用。 
      

  16.   

    有区别,{}有分配地址,null没有分配。
    你可以试试就看到结果了,如 String []aa={"a","b","c"};
          String []bb=null;
          int i= aa.length;
          int j =bb.length;
    编译应该没问题,你运行看看呢。多动手就发现了。
      

  17.   

    int[] array1 = null;
    只是在栈中声明了一个引用.堆中并未分配内存空间.
    int[] array2 = {};
    在栈中声明了一个引用.堆中并分配内存空间,但是并未存放具体内容.
      

  18.   

    {}意思是已经分配一个空间,就是说实例化了,null  没有实例化,不指向任何对象,没分配空间
      

  19.   

    int[] x = {};
    int[] y = null;
    System.out.println("x.length=" + x.length);//x.length=0
    System.out.println("y.length=" + y.length);// 抛出java.lang.NullPointerException
      

  20.   

    {}:分配内存空间有指向得引用
    null : 不分配内在空间