码迷,mamicode.com
首页 > 编程语言 > 详细

java中,==跟equals的区别

时间:2016-11-30 03:30:22      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:操作   自定义   数据   另一个   基本类型   java   方法   als   占用   

    在java中,经常有一些刚入行的新手分不清==跟equals的区别。==操作符是专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或者两个变量是否相等,只能用==操作符。如果一个变量指向的数据是对象类型,这时候就涉及了两块内存,对象本身占用已快内存,变量本身也占用一块内存,例如:Object obj = new Object();中,变量obj是一个内存,new Object();是另一个内存。此时,变量obj所对应的内存中存储的数值就是对象占用的那块内存。对于指向对象类型的变量,如果要比较两个变量所对应的内存中的数值是否相等,这时候就需要用==操作符进行比较。然而equals方法是对两个独立的对象的内容进行比较,就好比比较两个人的长相,首先两个对象是独立的。例如:String a = new String("str"); String b = new Stirng("str"); 两条new语句创建了两个对象,然后用a跟b两个变量分别指向其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a跟b中存储的数值是不相同的,所以,如果是a==b将返回false,而a.equals(b)则是返回true.

    另外声明一点,如果一个类没有自定义的equals方法,那么将继承Object类的equals方法。从Object继承的,就是使用==操作符,也是比较这两个变量指向的是否是同一个对象,这时候用==跟equals会得到同样的结果

java中,==跟equals的区别

标签:操作   自定义   数据   另一个   基本类型   java   方法   als   占用   

原文地址:http://www.cnblogs.com/allen-space/p/6115762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!