"==" 、equals比较运算符、toString() 的一点分析
来源:互联网 发布:java中int的范围 编辑:程序博客网 时间:2024/06/02 00:25
java中,所有的类都是继承于Object类。
Object源码中对于equals()方法的定义如下,即直接调用了“==”,判断的是两个对象的地址是否相同。
public boolean equals(Object obj) { return (this == obj); }如果要判断其值是否相同,则需要重写equals()方法,String类为什么调用equals方法比较的是值,而不是址,就是因为进行了重写。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; }
与此相似的是toString()方法,
Object类的源码中,toString()方法返回的是该对象实现的类名+@+hashcode值。
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }String类中的源码,返回的是它本身。
/** * This object (which is already a string!) is itself returned. * * @return the string itself. */ public String toString() { return this; }所以当我们自定义一个类的时候,如果想通过toString()方法来获取这个类的相关属性,都要重写toString()方法。如下所示:
public class Person {private int id;private String name;public Person(int id, String name) {super();this.id = id;this.name = name;}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + "]";}}
1 0
- "==" 、equals比较运算符、toString() 的一点分析
- equals( )方法与 == 运算符的用法比较
- 运算符 “==”与equals(Object)的比较
- 比较运算符compareTo()、equals()、==之间的区别
- ==和equals比较运算符
- ==和equals比较运算符
- Java中的equals方法和比较运算符”==“的使用和比较
- Java中==比较运算符和equals详解
- 在Java中,用作字符串比较的运算符" == "和".equals()"的区别
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结 .
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结
- Java:比较运算符compareTo()、equals()、==之间的区别
- 【Java基础】比较运算符compareTo()、equals()、==之间的区别与应用总结
- java运算符的比较:==和equals,compareTo()
- smartform入门
- Java中正则表达式的使用以及android邮箱格式判断
- 同步和异步
- LIBSVM的FQA
- draw_net.py绘制caffe net结构
- "==" 、equals比较运算符、toString() 的一点分析
- oracle最简便的密码校验函数,profile的使用
- Error:Execution failed for task ':app:dexDebug'.finished with non-zero exit value 3解决
- Java线程之InterruptedException
- 静态类与非静态类,静态成员的区别
- JFrame中setDefaultCloseOperation的使用方法
- 剑指offer--字符串排列
- 微信开发之3-启用开发者模式,查看开放接口配置封装接口
- Java语言后台实现调用url路径并传参