标签:represent nim 实现 mos 地址 nat 区别 com 接口
Java中==就是用来比较值是否相等,equals()是父类Object提供的一个方法equals(Object obj),在Java API文档中提到:
The equals
method for class Object
implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x
and y
, this method returns true
if and only if x
and y
refer to the same object (x == y
has the value true
).
即如果不在自己的类重新实现的话作用等于==。
Java的数据类型分为引用型和基本类型
基本类型有4类8种:
浮点型:float(4 byte), double(8 byte)
整型:byte(1 byte), short(2 byte), int(4 byte) , long(8 byte)
字符型: char(2 byte)
布尔型: boolean(JVM规范没有明确规定其所占的空间大小,仅规定其只能够取字面值"true"和"false")
在Java中存放的就是具体值,(其值存放在data segment),用==比较的就是data segment中的值
int a = 1; int b = 1;
a==b; 返回true //基本类型不能用equals()比较
引用类型有3中:
自定义类,数组,接口
当声明引用类型时,如 Animal a = new Animal("cat"); Animal b = new Animal("cat");
其中a,b存在栈上,new出的两个对象存在堆上, 此时a==b为false, 因为栈上的a,b存的是new出对象的地址,通过此地址可以找到对象,a,b的值是不同的,同样如果Animal类没有重写equals()方法,返回值和==一样为false
特殊的是String类自动为我们重写了equals()方法,Java API中写到
public boolean equals(Object anObject)
true
if and only if the argument is not null
and is a String
object that represents the same sequence of characters as this object.它比较的是String的具体内容,即字符串的值
String a = new String("hello");
String b = new String("hello");
a==b;//false
a.equals(b);//true
标签:represent nim 实现 mos 地址 nat 区别 com 接口
原文地址:http://www.cnblogs.com/atongmumu/p/6431254.html