String s=null; 与 String s = "";在内存分配上有什么不同?

解决方案 »

  1.   

    String s = null;
    只是声明一个String类型的对象引用,并没有指向一块实际的内存空间。
    String s = ""
    是让引用s指向内存中一块分配好的内存区域。应该是这样的。初学者的理解。
      

  2.   

    前者值为null,后者是一个空串
    建议理解一下C/C++关于二者的区别
      

  3.   

    为null不分配内存 , 为“” 分配内存
      

  4.   

    一个是null就是不分配内存。""是会分配内存的
      

  5.   

    null一个特殊位置,""在常量池的某个位置
    String s=null 未分配相关内存,也就是说s只是未指向任何位置(其实只是指向那个特殊位置)
    String s="" 指向了常量池
    s本身就是一个引用,需占有一定的空间
    可以借组相关工具来看内存分配情况------------------------
    java菜鸟学堂QQ群144648357
      

  6.   


    String s = null;
    //只是声明一个String类型的对象引用,并没有指向一块实际的内存空间。
    String s = ""
    //是让引用s指向内存中一块分配好的内存区域。
      

  7.   


    那请问,String s=""所分配的内存空间是多大呢?这个有什么依据吗?
      

  8.   

    这么说吧""也是一个对象。s=null,只是创建了一个引用,而s=""是将引用关联到了一个对象.