==与equal

== 在java中,用来判断两个对象是不是同一个时使用.例如

String a = "132456";

String b = "132456";

首先我们先了解一下,java中的String类。String不属于八大基本类型。他属于java.lang.String

介绍一下String类定义对象的特点。首先String定义对象有两种方式,一种是:String a = new String()/new String("sdf");

另一种是:String a = "sdf";这种方式与第一种方式的不同之处在于:这种方式定义String对象,程序是先去内存中找,看看是否有一个值为sdf的对象,如果有,程序把这个对象对应的地址引用指向a,如果没有,程序会在内存中重新new一个String对象,值为sdf,并地址引用指向a。所以上面的a对象和b对象其实都是一个内存对象的地址引用,即他们都指向同一个对象,所以a==b是

正确的。但是如果String a = new String("123");String b = new String("123"); a==b 是错误的,a与b指的是两个对象。但a与b指向的对象的值都是123,值是相同的。

 

equal 是 java.lang.Object类中定义的方法。其他对象需要都可以使用equal()方法,因为java中所有类都直接或间接的继承

这个类,但这个类中的equal方法,只是比两个对象是不是同一个对象,即==判断,所以如果某个对象要使用equal方法,一般都

先重写这个方法,比如String类,他就重写了这个方法,扩展了这个方法的使用范围,使得Equal方法不只是==判断,还包括了对

象值得判断,即如果两个对象不是同一个对象,但对象内容是相同的,那么也认为equal成立,即返回true;例如:String a = new String("123");String b = new String("123");a==b 是false;但a.equal(b) 是true;

发布了36 篇原创文章 · 获赞 1 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章