与NULL比较使用==还是equals

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了与NULL比较使用==还是equals相关的知识,希望对你有一定的参考价值。

对String 类型的值判断非空

其实很好理解:
首先,我们来了解一下==和equals区别:==是用于比较变量,equals是用于比较对象;
其次,在开发中,有很多类型可以定义为null(比如实体类、String、PreparedStatement等等),从而导致null在equals比较的时候变得模糊,不能判断null是什么对象。举个例子:
String username=null;
if(username.equals("zbc"))

会报空指针异常,此时在if中username就是null,那在if中,你知道null是什么类型吗,肯定是不知道的,所以equals也无法判断null是什么对象(null可能是String,也可能是实体类)。
参考技术A NULL表示空,这个针对一个对象而言,不是基本数据类型的变量值。equals常用来字符串的比较,==则用来基本数据类型值比较 参考技术B string类型与null比较用==,string类型与空字符串“”比较用equals本回答被提问者采纳 参考技术C null 调用equals方法肯定报错 不能用空引用去调用方法 应该把会出现null引用的值放在equals之后 if("zbc".equals(username)) 这样就不会报空指针异常 会显示false 基本数据类型都有默认值可以== 包装类型比较用equals 因为源码会判断对象的类型 如果是空不会进行比较 直接false 参考技术D 当然是==了
对象都不存在怎么equals啊

小知识点记录:(“字符“).equals(str)与str.equals(“字符“)的区别

最近遇到这个知识点:
("字符").equals(str)str.equals("字符")的区别;
之前比较常用("字符").equals(str),但还是仔细区分一下;

因为;如果传入的字符串str为null时,null的的引用类型变量来调用方法会抛出异常;

📢先来看第一种情况,当 传入的str为正常字符时;

/**
 * @author by 信计1801 李智青 学号:1809064012
 */
public class Test 
    public static void main(String[] args) 
        String str = "xiaoZhi";

        boolean a1 = str.equals("xiaoZhi");
        boolean a2 = "xiaoZhi".equals(str);
        System.out.println(a1);
        System.out.println(a2);
    

在正常情况下没有区别


📢 然后当这个字符为 null 空值时;若使用str.equals("字符")会出现空指针异常;

/**
 * @author by 信计1801 李智青 学号:1809064012
 */
public class Test 
    public static void main(String[] args) 
        String str = null;

        boolean a1 = str.equals("xiaoZhi");
        System.out.println(a1);
    


但是在str为null的情况下
若使用"字符".equals(str)时,可以避免出现空指针异常;

null表示对象的内容为空,即对象的内容是空白的。null没有分配内存。
不会指向任何对象,

实际上;null值无法调用这些方法;

之前在这篇笔记中记录过一部分知识;
JAVA中的“ 大同小异 “知识点总结


以上是关于与NULL比较使用==还是equals的主要内容,如果未能解决你的问题,请参考以下文章

Java中比较各变量对象的推荐方法==还是equals

equal是比较值的 ==是比较地址的 那!=是比较值还是比较地址呀 突然有点晕,谁能帮我解答一下,谢谢!

Java中的==与equals()

Spring Security 中的 Spring Expression Language (SpEL) 比较对象使用 equals() 还是 ==?

java equals比较的是内容还是地址

java Object里的equals比较的是对象的哈希值还是物理内存? "==" 比较的又啥?