请详细一点,谢谢

解决方案 »

  1.   

    ""就是空串,null就是空,也就是没对象,""有对象
      

  2.   

    ""分配了内存
    null没有分配内存
      

  3.   

    ""申请了内存空间,只是不存储实际内容
    null不申请空间,严格的说是没有初始化
      

  4.   

    String s;
    String s1 = "";第一个.声明一个s,在内存中的栈区分配一块空间,没有任何引用值.
    第二个.声明一个s1,在内存中的栈区分配一块空间,同时在堆区创建一个字符串实例,其中没有内容.栈区分配的空间指向堆区的实例.这就是不同.
      

  5.   

    比较实用的理解就是
    String s1=null;
    String s2="";System.out.println(s1.toString()); 报错
    System.out.println(s2.toString()); 不报错
      

  6.   

    " "是一个空的字符串对象,null表示引用不参考至任何对象
      

  7.   


    null,不可预知,不可知。
    "",字符串长度为0。
      

  8.   

    null  就是内存中不存在对象""  就是内存中有""对象
      

  9.   

    String s = "";分配了内存地址,不会出现空指针异常哈。
    而 String s = null;则没有分配内存地址,会出现空指针异常哈。
      

  10.   

    String s = new String("");
    在堆内存中开辟了内存,只不过值是一个""(空字符串),s的值为开辟的这块内存的地址.
    而String s1 = null;
    只是在栈内存中声名了一个变量,而这个变量不指向任何对象,也就是不指向堆内存中开辟内存的任何对象.
      

  11.   

    “”空字符串表示你有一个空空的钱包
    null表示你连一个钱包都没有
      

  12.   

    堆区和栈区都是内存的一部分啊~!
    我们new出来的东东都是在堆内存中的,而声明的变量等都是在栈内存中的.
      

  13.   

    ""判断是用equal
    null 是用==
      

  14.   


    堆区放动态new出来的东西  栈区放局部变量和方法的参数