源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java的equals和==的比较示例

  • 时间:2020-01-31 20:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java的equals和==的比较示例
先看例子:
[u]复制代码[/u] 代码如下:
package com.amos; /**  * @ClassName: EqualTest  * @Description:Java中的equal和==的比较  * @author: amosli  */ public class EqualTest {     public static void main(String[] args) {         int a = 1;         float b = 1.0f;         System.out.println(a == b);// true         String c = new String("hi_amos");         String d = new String("hi_amos");         System.out.println(c == d);// false         System.out.println(c.equals(d));// true     } }
Java中判断两个变量是否相等主要有两种判方式:一种是利用==运算符,另一种是利用equals方法来判断两者是否相同. 1).当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型,不要求数据类型严格相同,只要两个变量的值相等,那么将返回true. 2).如果对于两个引用类型变量,它们必须指向一个对象时,==判断才会返回true.==不可用于比较类型上没有父子关系的两个对象. 如上可以解释同样一new String时,==判断两者是否相同返回的是false,而equals返回的是true. equals方法针对的String类,查看其源码,可以发现其实equals只能算是==的一种特例.如下面源码所示:
[u]复制代码[/u] 代码如下:
public boolean equals(Object anObject) {         if (this == anObject) {             return true;         }         if (anObject instanceof String) {             String anotherString = (String) anObject;             int n = value.length;             if (n == anotherString.value.length) {                 char v1[] = value;                 char v2[] = anotherString.value;                 int i = 0;                 while (n-- != 0) {                     if (v1[i] != v2[i])                             return false;                     i++;                 }                 return true;             }         }         return false;     }
equals方法实际上一开始就调用了==判别式,然后再判断其进一步值是否正确
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部