Java中的equals与==之比较
来源:互联网 发布:黑客大会 知乎 编辑:程序博客网 时间:2024/05/17 08:23
Java中的==的主要功能:①比较基本数据类型,如果二者值相同则返回true否则返回false②用于比较引用,如果引用指向内存中的同一对象,返回true否则返回false。
equals方法本意是确定两个对象的引用是否相同。
下面看一段测试程序:
static class Value {int i;}/** * @param args */public static void main(String[] args) {// TODO 自动生成的方法存根int a = 1, b = 1;System.out.println(a == b);Integer n1 = new Integer(47);Integer n2 = new Integer(47);System.out.println(n1 == n2);System.out.println(n1.equals(n2));Value v1 = new Value();v1.i = 2;Value v2 = new Value();v2.i = 2;System.out.println(v1 == v2);System.out.println(v1.equals(v2));}输出结果为:
true
false
true
false
false
为何String与Value的equals方法不同呢,因为String类对equals方法进行了覆盖,功能变为比较两个字符串内容是否一致。
同样的对Value的equals方法进行重载,代码如下:
static class Value {int i;@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;Value other = (Value) obj;if (i != other.i)return false;return true;}}/** * @param args */public static void main(String[] args) {// TODO 自动生成的方法存根Value v1 = new Value();v1.i = 2;Value v2 = new Value();v2.i = 2;System.out.println(v1 == v2);System.out.println(v1.equals(v2));}
运行结果:
fals truee
0 0
- Java中的equals与==之比较
- Java中的==与equals比较。
- java中的string equals 与 == 的比较
- java中的string equals 与 == 的比较
- java中的string equals 与 == 的比较
- java中的string equals 与 == 的比较
- java中的string equals 与 == 的比较
- java中的string equals 与 == 的比较
- java中的string equals 与 == 的比较
- java中的string equals 与 == 的比较
- java中的equals与==的比较
- java 中的==和equals比较
- Java中的比较: == 和 equals
- Java中“==”与“equals”比较
- java “==”与equals()比较
- java equals方法与==比较
- java,equals与==比较
- equals 与“=”比较
- 深入理解java异常处理机制
- 比较排序算法
- iOS-应用之间调用
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- leetcode6 Zigzag Conversion
- Java中的equals与==之比较
- iOS-BugList:NSNull equal
- Sicily1828Minimal
- linux设备驱动之s3c2410 UART移植
- 在内核中创建文件 filp_open/sys_open
- 2014级学生第一学期C++学习情况统计
- java基本类型和引用类型
- PHP上传文件大小限制的问题
- mssql 查询表下面有多少个字段