您的位置:首页 > 其它

==和equls

2015-10-14 21:56 148 查看
==和equls是初学java的时候比较容易混淆的概念。我也遇到过这类基础问题的错误使用的问题。

==和equls都是比较是否等于的方法,返回值是布尔型true或是false。

==:比较等等前后值的引用是否相同。

Equls:比较equls前后的值是否相同。

public
static void
main(String[]
args) {
Integeri1 = new Integer(10);
Integeri2 = new Integer(10);
System.out.println(i1 ==
i2);
}

//out:false

i1 和i2虽然值一样,但是指向的对象是不一样的,根据定义,==操作返回的是false。

但是要注意的是,如果i1和i2用int来修饰,那么返回的是true。

这里就要注意了,基本类型只需要==和!=来判断。

Equls用string来演示,能很直观的了解equls和==的区别。

public
staticvoid
main(String[]
args){
Strings1 =
"abc";
Strings2 =
"abc";
Strings3 = new String("abc");
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
}

//true

//false

//true

//true

三个Strin对象,s1和s2是在String常量池中,而s3是新实例化的,新开辟了的空间,那么根据我上面提到的==和equls的用法,s1和s2都是指向一个对象,返回的是true。但是,s1(s2)和s3相比,s3是新实例化的对象,指向新开辟的空间,s1==s3返回false。而由于s1,s2,s3的值都是"abc",所以用equls来比较,返回的是true。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: