Java基础知识整理(三)- equals和==的区别
来源:互联网 发布:stylus rmx mac 编辑:程序博客网 时间:2024/05/16 00:25
Java中的数据类型分为2类:
1. 基本数据类型(8个基本数据类型)
也称为原始数据类型,byte,short,char,int,long,float,double,boolean,他们之间比较时,应该使用 “==”,比较他们的值就可以了。
2. 引用数据类型
其他的数据类型,都是引用数据类型。他们使用“==”比较时,比较的是他们的内存地址。
Java中所有类的基类是Object:
package java.lang;public class Object { private static native void registerNatives(); static { registerNatives(); } public final native Class<?> getClass(); public native int hashCode(); public boolean equals(Object obj) {return (this == obj); } protected native Object clone() throws CloneNotSupportedException; public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode()); } public final native void notify(); public final native void notifyAll(); public final native void wait(long timeout) throws InterruptedException; public final void wait(long timeout, int nanos) throws InterruptedException { if (timeout < 0) { throw new IllegalArgumentException("timeout value is negative"); } if (nanos < 0 || nanos > 999999) { throw new IllegalArgumentException("nanosecond timeout value out of range"); }if (nanos >= 500000 || (nanos != 0 && timeout == 0)) { timeout++;}wait(timeout); } public final void wait() throws InterruptedException {wait(0); } protected void finalize() throws Throwable { }}
通过源码,可以看到,Object类中的equals()方法,默认就是使用“==”来判断的,在一些类中,都会重写这个方法,根据自己的需求去实现。
String的源码:
public boolean equals(Object anObject) {if (this == anObject) { return true;}if (anObject instanceof String) { String anotherString = (String)anObject; int n = count; if (n == anotherString.count) {char v1[] = value;char v2[] = anotherString.value;int i = offset;int j = anotherString.offset;while (n-- != 0) { if (v1[i++] != v2[j++])return false;}return true; }}return false; }
- Java基础知识整理(三)- equals和==的区别
- java基础知识(三)-- String使用equals和==比较的区别
- java基础知识---==和equals的区别及重写equals方法
- java ==和equals、equals和hashCode的区别
- 面试基础整理(一)---Java中==和equals的区别
- Equals和==的区别,java
- java == 和 equals的区别
- java ==和equals的区别
- Java "equals"和"=="的区别
- java:equals 和 ==的区别
- Java "==" 和 .equals()的区别
- java == 和equals的区别
- java==和equals()的区别?
- java equals和==的区别
- java-==和.equals()的区别
- java: ==和equals的区别
- java ==和equals的区别
- Java equals和==的区别
- Linux 安装MongoDB<一>
- iOS7应用开发3、Objective-C
- 大数据 整形类型转2进制
- 菜鸟的编程回忆录
- 励志故事:从农村走出来的站长
- Java基础知识整理(三)- equals和==的区别
- 排列组合 算法
- wikioi 1225八数码难题
- HTML特效代码大全
- wiki1003电话连线
- 最小生成树
- 传递闭包
- spacex
- poj1611 The suspect并查集