Java给每个变量和实例分配内存空间
String s1=new String ("abc");
String s2=new String ("abc");
这个时候,s1和s2虽然赋值一样,但指向的内存地址是不一样的,因为他们是不同的对象。
-------------------------------------
如果没被重写,类继承的是Object的hashCode(),会给每个对象分配内存空间,通过重写hashCode()方法可以自己设定该类new出来的所有对象的哈希值,你创造出来的所有对象都指向同一个内存地址。比如
Person a=new Person();
Person b=new Person();
通过重写hashCode()方法后(a==b)返回true
这个时候就要通过equasl()方法来判断这两个对象指向内存空间存储的值是否相同。值相同a.equasl(b)返回true
java中的数据类型,可分为两类:
1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean
他们之间的比较,应用双等号(==),比较的是他们的值。
2.引用数据类型(对象)
当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。 |