如题所述
虽然都是没有信息,但是null代表堆内存中根本没有这个东西,而空字符串就完全不同了,空字符串也是字符串,他是有内存空间的
判断字符串是否为空
1
2
3
4
5
6
7
8
/**
* 判断字符串是否为空
* @param str 字符串
* @return 是否为空
*/
public static boolean isEmptyString(String str) {
return str == null || str.trim().length() == 0;
}
判断字符串是否为空
1
2
3
4
5
6
7
8
/**
* 判断字符串是否为空
* @param str 字符串
* @return 是否为空
*/
public static boolean isEmptyString(String str) {
return str == null || str.trim().length() == 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-09-26
在回答你的问题之前,先说一下Java声明变量以及赋值的过程。比如,String str = "Hello!",其实分为两步,String str, str="Hello!"。第一步是产生一个引用,放到了栈中,第二部赋值,为变量分配内存地址,也就是放在堆中。String a=null,只是进行了第一步,也就是没有分配内存。String b= "",两步都有进行,值为空,但是分配了内存地址。判断两字字符串值是否相同的方法是isequal(),判断字符串str为空可以这个 str.isEqual(""),或者str.isEmpty()。
第2个回答 2016-09-26
s=="" && s==null