日期:2014-05-17  浏览次数:20734 次

String a 与 String a=null 有什么区别
class Test{
  public static void main(String args[]){
  String a = null;
  String b;
  String c = "abc";
  System.out.println(a + c); //打印结果是nullabc
  System.out.println(b + c); //直接编译报错
  }
}
a,b 都是在栈中分配,堆中都没分配,为何a可以用,b不可以用,高手帮忙解答下什么原因?

------解决方案--------------------
lz给你个链接,有详细的字符串池和字符串堆内存分配的解释
http://wenku.baidu.com/view/0f8c8b1efc4ffe473368abed.html