第1个回答 2016-09-26
在回答你的问题之前,先说一下Java声明变量以及赋值的过程。比如,String str = "Hello!",其实分为两步,String str, str="Hello!"。第一步是产生一个引用,放到了栈中,第二部赋值,为变量分配内存地址,也就是放在堆中。String a=null,只是进行了第一步,也就是没有分配内存。String b= "",两步都有进行,值为空,但是分配了内存地址。判断两字字符串值是否相同的方法是isequal(),判断字符串str为空可以这个 str.isEqual(""),或者str.isEmpty()。