java-对象的引用、对象的比较

在java语言中尽管一切都可以看作对象,但真正操作标识符实质上是一个引用,那么引用究竟在java中是如何体现的呢?

语法如下:

类名  对象引用名称

比如一个book类的引用可以使用如下代码:

Book    book;

通常一个引用不一定需要一个对象相关联。引用与对象相关联的语法如下:
Book  book=new  Book();

注意:引用只是存放一个对象的内存地址,并非存放一个对象,严格说引用和对象是不同的,但是可以将这种区别忽略,如可以简单地说book是Book类的一个对象,而事实上应该是book是包含Book对象的一个引用。

对象的比较:

在java语言中有两种对象的比较方式,分别为“==”运算符和equals()方法。实质上这两种方法本质上还是有区别的:

equals()方法是从String类中的方法,它用于比较两个对象引用所指的内容是否相等;

“==”运算符比较的是两个对象引用的地址是否相等。

package a;

public class a {
       public static void main(String [] args)
       {
    	   String c1=new String("abc");
    	   String c2=new String("abc");
    	   String c3=c1;
    	   System.out.println("c2==c3的运算结果是:  "+(c2==c3));
    	   System.out.println("c2.equals(c3)的运算结果为:  "+(c2.equals(c3)));
       }
}

控制台输出结果:
c2==c3的运算结果是:  false
c2.equals(c3)的运算结果为:  true
由于c1和c2是两个不同的对象引用,两者在内存中的位置不同,而Stringc3=c1;语句将c1的引用赋给c3,所以c1和c3这两个对象的引用是相等的,也就是打印c1==c3这样的语句将返回true值。对象c1,c2,c3在内存中布局是:

java-对象的引用、对象的比较_第1张图片




你可能感兴趣的:(S1:Java)