与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的主要内容,如果未能解决你的问题,请参考以下文章
equal是比较值的 ==是比较地址的 那!=是比较值还是比较地址呀 突然有点晕,谁能帮我解答一下,谢谢!
Spring Security 中的 Spring Expression Language (SpEL) 比较对象使用 equals() 还是 ==?