• java中 == 与equals 的区别


    ==与equals 的区别

    简介

      == 可以比较基本数据类型,也可以比较引用数据类型

        比较基本数据类型,比较的是

        比较引用数据类型,比较的是地址值

      equals 只能比较引用数据类型,比较的是引用数据类型的内容

    说明

      == 相当于实际生活中的等号(=),对于基本数据类型的变量来说,就是直接判断两个值是否相等

      在java中的基本数据类型   四类八种

        1、浮点型 :float(浮点型), double (双精度性)

        2、整型 : byte(字节型), short (短整型),  int(整型),  long(长整型)

        3、字符型 :char(字符型)

        4、布尔型 : boolean(布尔型)

    	// 定义两个变量
            int a = 20;
            int b = 20;    
            // 使用== 进行比较两个值是否相等,打印结果 :true
            System.out.println(a==b); 

      对于这八种基本数据类型的变量,可以直接使用 == 来比较变量的值

      而对于非基本数据类型的变量,在一些数据中称为 引用类型,比如String 

      对于引用类型存储变量,存储的并不是 “值” 本身,而是该值在内存中的地址。所以引用类型使用 == 进行比较的时候,比较的是变量值的地址值,并非 “值” 本身

     1     public boolean equals(Object anObject) {
     2         if (this == anObject) {
     3             return true;
     4         }
     5         if (anObject instanceof String) {
     6             String anotherString = (String) anObject;
     7             int n = value.length;
     8             if (n == anotherString.value.length) {
     9                 char v1[] = value;
    10                 char v2[] = anotherString.value;
    11                 int i = 0;
    12                 while (n-- != 0) {
    13                     if (v1[i] != v2[i])
    14                             return false;
    15                     i++;
    16                 }
    17                 return true;
    18             }
    19         }
    20         return false;
    21     }
    String 源码,重写equals

      equals 方法是Object中的方法,因此对于所有继承Object 的类,都会有该方法。

      从String 源码看出,String 重写了equals 方法,比较的是执行对象的内容

      若没有对equals 方法进行重写,则比较的是引用类型变量所指向的对象的地址

    作者:大角牛 出处:http://www.cnblogs.com/dajiaoniu/ 本博客中未标明转载的文章归作者大角牛和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    C#操作Word打印
    判断文件名是否有效
    Windows系统下的程序开机自启
    Winform应用程序使用自定义的鼠标图片
    C# 操作网络适配器
    Runtime Error! R6025-pure virtual function call
    Winform中跨线程访问UI元素的方法
    C#自定义属性转换类---类型转换器
    获取计算机硬件信息
    获取程序集信息
  • 原文地址:https://www.cnblogs.com/dajiaoniu/p/10031841.html
Copyright © 2020-2023  润新知