`

null和""以及==与equals的区别

    博客分类:
  • JAVA
 
阅读更多

  1. String str1 = null; str引用为空   
  2. String str2 = ""; str引用为空串   
  3.   
  4. 直接点就是null没有分配内存空间,而""分配了内存空间,因此str1还不是一个实例化的对象,而str2已经实例化。   
  5.   
  6. 注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1==null){....}和if(str2.equals("")){....}   
  7.   
  8. 内存地址比较用equals,null用等号比较。  
  9.   
  10. 因此,如果str1=null;下面的写法错误:   
  11. if(str1.equals("")||str1==null){  
  12. //如果str1没有值,则返回false  
  13. }   
  14. 正确的写法是 if(str1==null||str1.equals("")){   
  15. //先判断是不是对象,如果是,再判断是不是空字符串   
  16. }   
  17.   
  18. //==与EQUEAL得区别如下:  
  19. //如下面的代码,运行过后,返回为false;  
  20.   
  21. public static void main(String[] ab){  
  22.     String a = new String("123");  
  23.     String b = new String("123");  
  24.     System.out.println(a==b);  
  25.    }  
  26. //这是因为==比较的是两个引用时是不是指向同一个内存地址,而equeals比较的是字面值。上面的new就产生了两个不同的对象,那么其内存地址肯定也就不同了。  
  27.  public static void main(String[] ab){  
  28.         String a = new String("123");  
  29.         String b = new String("123");  
  30.         System.out.println(a.equals(b));  
  31. }//返回为true  

分享到:
评论

相关推荐

    字符串比较之 “==”和 “equals”

    "=="和"equals()"是两种常用的字符串比较方法,但它们之间存在一定的区别和使用场景。这篇博客将深入探讨这两个方法的工作原理以及何时应该使用它们。 首先,"=="运算符在Java中主要用于比较基本类型变量的值,如...

    java中的==和equals()方法1

    在Java编程语言中,了解如何正确使用`==`和`equals()`方法是非常关键的,因为它们在比较对象和基本类型时有不同的行为。下面将详细解释这两个方法的工作原理、使用场景以及一些常见误区。 首先,`==`运算符主要用于...

    ==代替Object#equals() - 加速在容器类中搜索元素速度的可能性

    正确的`hashCode()`实现应与`equals()`方法保持一致,以确保元素可以在哈希表中正确地定位和查找。一个良好的`hashCode()`实现应尽可能地分散哈希值,减少哈希冲突,从而提高查找效率。 总结来说,优化`equals()`和...

    java中equals()函数的用法 equals和==的区别

    在实现`equals()`时,通常会结合`getClass()`和`==`来确保比较的对象是同类型并且不是null。接着,逐个比较对象的所有关键字段,看它们是否相等。同时,别忘了在重写`equals()`时,也要重写`hashCode()`方法,以保持...

    Java常见笔试、面试题目深度剖析 相等性(==及equals方法)详解

    本篇文章将深入剖析“==”运算符和equals()方法的区别与联系,帮助你在Java的笔试和面试中更好地应对相关问题。 首先,“==”运算符在Java中用于比较基本类型变量的值是否相等,例如int、char或boolean。对于引用...

    java String 类的一些理解 关于==、equals、null

    在理解`==`和`equals()`方法在字符串比较中的作用时,我们需要深入理解Java内存模型以及对象引用的概念。 1. **`==` 与 `equals()` 的区别** `==` 运算符在Java中用于比较基本类型变量的值或者对象的引用。对于...

    java中equals和==的区别.pdf

    Java中equals和==的区别 Java是一门面向对象的编程语言,它提供了多种运算符和方法来比较对象和变量。在Java中,比较两个对象是否相等时,经常使用到的运算符有"=="和"equals"。虽然两者都可以用于比较,但它们有着...

    详解java==运算符和equals()方法的区别

    理解这两者的区别对于编写正确和可靠的代码至关重要。 1. `==`运算符: `==`运算符主要用于比较基本类型(如int、char等)的值,以及检查引用类型(如对象实例)是否指向内存中的同一个位置。对于基本类型,如果...

    Java中String判断值为null或空及地址是否相等的问题

    总结来说,理解Java中`null`、空字符串`""`的区别,以及如何安全地进行比较,是编写健壮代码的关键。同时,了解字符串对象的内存地址和内容相等性的差异,可以帮助我们更好地理解和调试程序。在实际开发中,应始终...

    java中"==" 与equals方法的使用

    本文将深入探讨这两个概念的区别以及何时应该使用它们。 首先,"=="运算符主要用于比较基本数据类型的值,如int、char、float等。当比较两个基本数据类型的变量时,"=="会直接比较它们的值是否相等。例如,在给定的...

    C#中的Equals、RefrenceEquals和==的区别与联系

    通过上述分析,可以看出,尽管Equals、ReferenceEquals和==在某些情况下会返回相同的结果,但它们之间的细微差别意味着在选择使用哪种方式来比较对象时,我们需要仔细考虑实际的应用场景和对象的类型。正确的选择将...

    Java语言深入_equals

    以`FieldPosition`类为例,它的`equals`方法检查了对象类型、`attribute`字段以及`beginIndex`和`endIndex`的值。这段代码看起来是正确的,符合API规范。然而,当我们用自定义的`MyTest`类扩展`FieldPosition`并重写...

    Java容器集合(equals 和 hashCode+基础数据结构+ArrayList+Vector和LinkedList)

    2. 对称性:对于非null的x和y,存在x.equals(y)==y.equals(x)。 3. 传递性:对于非null的x、y、z,存在当x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)一定为true。 4. 一致性:对于非null的x和y,多次...

    hashcode()和equals()

    在Java编程语言中,`hashCode()` 和 `equals()` 方法是两个非常重要的概念,尤其是在处理对象比较和哈希表(如 `HashMap` 或 `HashSet`)时。这两个方法来源于 `Object` 类,是所有Java类的基类,因此,每个自定义类...

    重写toString和equals方法

    Java 对象的toString和equals方法重写 在 Java 中,每个对象都继承自 Object 类,而 Object 类中定义了两个重要的方法:toString() 和 equals()。这两个方法都是非常重要的,它们分别用于对象的字符串表示和对象...

    重写equals和hashcode方法_equals_重写equals和hashcode方法_

    在Java编程语言中,`equals()` 和 `hashCode()` 方法是Object类中的两个核心方法,所有类都默认继承自Object类。这两个方法在处理对象比较和集合操作时起着至关重要的作用。当我们创建自定义类并需要对对象进行精确...

    C# Equals 和 GetHashCode 方法重写

    在C#编程中,`Equals` 和 `GetHashCode` 方法是非常重要的成员方法,它们对于确保对象的正确比较以及高效地存储和检索对象至关重要。这两个方法通常需要在自定义类中进行重写,以满足特定业务逻辑的需求。 #### 1. ...

    重写equals方法

    在采用哈希算法的集合中,hashCode 方法和 equals 方法是紧密相关的。hashCode 方法用于计算对象的哈希值,而 equals 方法用于判断两个对象是否相等。如果两个对象的哈希值相同,那么它们也应该是相等的,反之亦然。...

    Java中equals方法隐藏的陷阱

    - **与`null`的关系**:对于任何非空引用值x,`x.equals(null)`应该返回`false`。 **示例代码**: ```java public boolean equals(Object obj) { if (this == obj) { // 自反性 return true; } if (obj == null...

Global site tag (gtag.js) - Google Analytics