java的String=a; a==null和a.equals(null)这两个判断有什么区别

如题所述

a==null;这个里面的a 是String对象的引用,(就相当于c++的指针),a==null 是判断这个引用a是不是指向一个String对象。
a.equal(null) 这个是判断a这个引用所指向的String对象的内容是不是为空。a只是String对象的引用而已。追问

"String对象的内容是不是为空",是指什么,“ ”这样算是空吗?还是哪种表达才是空呢?

追答

String类型可以看做字符数组,"String对象的内容是不是为空"就是指这个字符数据是不是为空

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-13
首先明确的一点,String的equals方法默认是重写了Object类的方法,具体是实现是
public boolean equals(Object paramObject) {
if (this == paramObject) {
return true;
}
if (paramObject instanceof String) {
String str = (String) paramObject;
int i = this.count;
if (i == str.count) {
char[] arrayOfChar1 = this.value;
char[] arrayOfChar2 = str.value;
int j = this.offset;
int k = str.offset;
while (i-- != 0) {
if (arrayOfChar1[(j++)] != arrayOfChar2[(k++)])
return false;
}
return true;
}
}
return false;
}
也就是说,对于a.equals(null)来说,第一步也会判断this == null,这里的this就是a。上面的代码已经说明,当equals传入的参数是null的时候,和a==null的效果是一样的。
但是如果传入的参数不是null,那么a==b只能判断a和b是否指向同一个java对象,而a.equals(b)能判断a和b指向的java对象的字符串内容是否一样。本回答被提问者和网友采纳
第2个回答  2014-01-27
a==null,判断引用变量a是否是空引用;a.equals(null)判断字符串a内容是否是空
第3个回答  2014-01-27
对于equals和==的区别你可以百度一下

通常对于字符串比较应该使用equals,对于数值的比较用==

java的String=a; a==null和a.equals(null)这两个判断有什么区别
a==null;这个里面的a 是String对象的引用,(就相当于c++的指针),a==null 是判断这个引用a是不是指向一个String对象。a.equal(null) 这个是判断a这个引用所指向的String对象的内容是不是为空。a只是String对象的引用而已。

a==null和a.equals("null")有什么区别?
a==null,是说a这个变量还没有内容,也就是a为空a.equals("null")为true是说字符串a的内容为“null”这个字符串。应该如此。

java的equals有时候比较不了"'NULL'",怎么回事?
有可能一些是null这的空 而一些是“null”字符串

java中变量不等于null跟null不等于变量,如a !=null与null!=a有什么区别...
这个没区别。我想你想问的应该是有个a对象。a.equals("");和"".equals(a);这个是有区别的。前者不能保证a不为null,可能回报空指针异常,后者的""肯定不是null,绝对不会有这种顾虑。希望可以采纳!

java中equals和==有什么区别,判断变量是否为空时null放在前和放在后有...
equals 只是比较值是否相同 而==则是比较两个变量 是不是同一个变量,也应时是说 要看看这两个变量是不是引用的同一个地址,java 中只有引用地址相同的两个变量才被视为== 如果明白值传递与地址传递的话,这个问题应该不难理解 null放在前面就是为了避免变量为空时 引了空指针异常 如: if(a==...

...string==null 和 string.equals("") 的区别
记住 string==null 和 string.equals("") 的区别确实让人头疼。其实,你可以用一些有趣的方式来记住它们。首先,我们先来思考 string==null 的情况。想象一下,你面前站着一个空气人,你叫他却不应。这就像 null 一样,你无法从它那里得到任何回应。所以,当你需要检查一个字符串是否为空时,就...

java 字符串为null 如何判断
Java空字符串与null的区别:1、类型null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;2、内存分配String str = null ; 表示声明一个字符串对象的引用,但指向为...

java中做字符串非空判断,为什么要同时判断字符串不为null和不等于空串...
对于null而言。如果一个字符串为null,例如String a = null; 那么此时,调用字符串对象a的方法,例如a.length(); 就会报空指针异常,即NullPointerException。如果这个异常没有被catch住的话,a.length();后面的代码就都不会被执行了。同时,如果这个程序是服务器程序,那么还会出现500这种属于比较严重...

java中"".equals(A)与A.equals("")一样不?
不一样 如果a为null a = null;a.equals("")出错nullPointerException 如果写为"".equals(a)-->就可以防止nullPointerException啦

Java空字符串与null的区别和判断字符串是否为空的方法
Java空字符串与null的区别:1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;2、内存分配 String str = null ; 表示声明一个字符串对象的引用,但...

相似回答