Java - equals 方法变量和常量位置区别

简介: Java - equals 方法变量和常量位置区别

对于字符串比较,我的习惯用法是变量.equals(常量)

比如:a.equals("a")

今天看视频才知道变量在前面与后面有很大影响,正确的写法是常量放前面(可以避免变量为null引起的异常),变量放后面,则上面需要改为("a").equals(a)。

对于JDK API上字符串的equals的官方解释是


image.png


public class equalsTest {
    @SuppressWarnings("rawtypes")
    public static void main(String args[]) {
        List list = new ArrayList();
        String str = null;
        System.out.println("0".equals(str));
        System.out.println(str.equals("0"));
        System.out.println("0".equals(list.get(2)));
        System.out.println(list.get(2).equals("0"));
    }
}

上面依次输出

false
java.lang.NullPointerException
java.lang.IndexOutOfBoundsException: Index: 2, Size: 0
java.lang.IndexOutOfBoundsException: Index: 2, Size: 0

对于判断是否为空  str!=null,这个应该变量放前面后面一般没影响,养成好的习惯的话变量也放在后面。一般对一个字符串进行判断首先进行非空判断,然后进行字符串内容判断,一个正确的例子


null !=string && !("").equals(string.trim()) && !("null").equals(string);
目录
相关文章
|
2天前
|
存储 Java
|
1天前
|
Java
java开启线程的四种方法
这篇文章介绍了Java中开启线程的四种方法,包括继承Thread类、实现Runnable接口、实现Callable接口和创建线程池,每种方法都提供了代码实现和测试结果。
java开启线程的四种方法
|
1天前
|
Java
"Java排序大揭秘:Comparable与Comparator,究竟有何神秘区别?掌握它们,告别排序难题!"
【8月更文挑战第19天】Java提供Comparable与Comparator两种排序机制。Comparable位于`java.lang`包,定义了`compareTo()`方法以实现类的自然排序;Comparator位于`java.util`包,通过`compare()`方法提供外部定制排序。实现Comparable固定了排序策略,适用于类自带排序逻辑;使用Comparator则可在不改动类的前提下灵活定义多种排序规则,适合多样化的排序需求。选择合适机制可优化排序效率并增强代码灵活性。
|
1天前
|
Java
成功解决:java: 找不到符号 符号: 方法 getSort() 位置: 类型为com.atguigu.gulimall.product.entity.CategoryEntity的变量 menu1
这篇文章讨论了Java中遇到的一个常见错误:"java: 找不到符号 符号: 方法 getSort() 位置: 类型为com.atguigu.gulimall.product.entity.CategoryEntity的变量 menu1",即在尝试调用一个不存在的方法时出现的问题,并提供了相应的解决方法。
|
3天前
|
存储 Java
|
23天前
|
存储 Java 索引
java 中为什么重写 equals 后需要重写 hashCode
java 中为什么重写 equals 后需要重写 hashCode
50 8
|
3月前
|
Java
JAVA中比较对象是否相等的方式是什么?为什么重写equals就一定要重写hashcode?百天百题(3/100)
JAVA中比较对象是否相等的方式是什么?为什么重写equals就一定要重写hashcode?
|
存储 IDE Java
【java面试题】- 为什么重写 equals() 时必须重写 hashCode() 方法?
为什么重写 equals() 时必须重写 hashCode() 方法?
86 0
|
存储 Java 对象存储
【Java面试】为什么重写equals方法必须同时重写HashCode方法?
【Java面试】为什么重写equals方法必须同时重写HashCode方法?
55 0
|
存储 算法 Java
Java 细品 重写equals方法 和 hashcode 方法
Java 细品 重写equals方法 和 hashcode 方法
265 0
Java 细品 重写equals方法 和 hashcode 方法