请教这句话为什么是错的呢?多谢! If x and y are String references and if x.equals(y) is true, then x== y is true. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 x==y 是对像相等,,包括内存地址值,x.equals(y) 只是指字面值相等, 不包括地址值 x==y 是指它们是指向同一个对象的引用,x.equals(y) 是指它们所指向的对象中的内容是一样的 == 操作符专门用来比较变量的值是否相等。比较好理解的一点是:int a=10;int b=10;则a==b将是true。但不好理解的地方是:String a=new String("foo");String b=new String("foo");则a==b将返回false。对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。a和b都使用了new操作符,意味着将在内存中产生两个内容为"foo"的字符串,既然是“两个”,它们自然位于不同的内存地址。a和b的值其实是两个不同的内存地址的值,所以使用"=="操作符,结果会是false。诚然,a和b所指的对象,它们的内容都是"foo",应该是“相等”,但是==操作符并不涉及到对象内容的比较。对象内容的比较,正是equals方法做的事。 x==y 地址相同,引用本来就是这样的equals ,内容相同 x==y是指对同一对象的引用x.equals(y)是指对象的值相同,不包括地址等 对象之间的比较用equals()而变量之间的比较用==这两个比较在很多公司的面试当中几乎都有,很重要,但是很基础! c to java 文件处理 请讲解以下代码的执行过程,看不懂捏 关于JButton的问题,求教 Java 接口泛型的问题 菜鸟刚面试Java研发工程师的几个题目 不显示数据-jfreechat线型图的createLineChart() ◆◆简单问题◆◆【请问如何同时给JTable中的不同的行使用不同的字体和颜色?】 求教:如何改变JSlider(滑杆)的默认出现位置?顶有分! 关于SQL Server在Java中的分页,谁能给我一个好的方案? 一个初涉java的学员 求张孝祥JAVA的PPT讲稿(30) 如何判断一个字符串中是否含有另一个字符串?
x.equals(y) 是指它们所指向的对象中的内容是一样的
int a=10;
int b=10;
则a==b将是true。
但不好理解的地方是:
String a=new String("foo");
String b=new String("foo");
则a==b将返回false。
对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。a和b都使用了new操作符,意味着将在内存中产生两个内容为"foo"的字符串,既然是“两个”,它们自然位于不同的内存地址。a和b的值其实是两个不同的内存地址的值,所以使用"=="操作符,结果会是false。诚然,a和b所指的对象,它们的内容都是"foo",应该是“相等”,但是==操作符并不涉及到对象内容的比较。
对象内容的比较,正是equals方法做的事。
equals ,内容相同
x.equals(y)是指对象的值相同,不包括地址等
而变量之间的比较用==这两个比较在很多公司的面试当中几乎都有,很重要,但是很基础!