博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
==和equals的比较
阅读量:6602 次
发布时间:2019-06-24

本文共 2002 字,大约阅读时间需要 6 分钟。

  一 : == 的特点: 

    a == b ;

      1.如果A和B是基本数据类型    ==   比较的是两个变量的值

      2.如果A和B是引用数据类型    == 比较的是两个变量的内存地址

  二:重写的equals方法

    Object中的equals方法:比较的是内存地址

public boolean equals(Object obj) {        return (this == obj);    }

    String类中重写的equals 方法:比较的是内容;

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;    }

实例:观察String中的equals方法

  String a = "abc";   String b = "abc";   String c = new String("abc");   System.out.println(a.equals(b)); // 值肯定一致 所有返回 true   System.out.println(a == b);// 内存地址也一致 所以 true    System.out.println(a.equals(c));// 值肯定一致 所有返回 true   System.out.println(a == c);// 内存地址不一致 所以 false

实例:观察String类型的比较

   String a = "a";   String b = "b";   String c = "ab";   System.out.println(c == (a+b));//false   //01.a 和 b 都是变量,在编译期间无法确定变量的值;   //02.c在编译期间已经确定,ab无法确定;

  三:关键字 final

    1.final可以修饰  类,属性 ,方法

    2.被final修饰的类,不能被继承;

      final修饰的方法,不能被子类重写;

      final修饰的属性,运行期间不能改变;

实例:观察常量的比较

   final String a = "a";   final String b = "b";   String c = "ab";   System.out.println(c==(a+b));//true

实例:以Student为例重写equals方法 

public boolean equals(Object anObject) {        if (anObject == null) {            return false;        }        if (this == anObject) {            return true;        }        if (!(anObject instanceof Person)) {            return false;        }        Student per = (Student) anObject;        return this.age == per.age && this.name == per.name;    }

 

转载于:https://www.cnblogs.com/ak666/p/8010842.html

你可能感兴趣的文章
使用tdcss.js轻松制作自己的style guide
查看>>
发布《iBoard 电子学堂》DEMO代码
查看>>
SecureCRTPortable.exe 如何上传文件
查看>>
什么是SysWow64
查看>>
C++中public、protected及private用法
查看>>
苹果公司的产品已用完后门与微软垄断,要检查起来,打架!
查看>>
chrome调试ajax
查看>>
centos 升级php、mysql(webtatic)
查看>>
Java并发编程:Lock
查看>>
oracle服务器和客户端字符集的查看和修改
查看>>
顶级的JavaScript框架、库、工具及其使用
查看>>
AYUI -AYUI风格的 超美 百度网盘8.0
查看>>
linux下php中文UTF-8转换Unicode方法和注意事项
查看>>
TensorFlow:tf.contrib.layers.xavier_initializer
查看>>
简明 Python 教程
查看>>
Photoshop操作指南
查看>>
用MPMoviePlayerController做在线音乐播放
查看>>
ASP.NET调用cmd命令提示符拒绝访问解决方案
查看>>
Leetcode: Construct Binary Tree from Preorder and Inorder Transversal
查看>>
嵌入式开发之字符叠加---gb2313 国标码,utf8 国际码,unicode 无码
查看>>