Java的==

来源:百度知道 编辑:UC知道 时间:2024/07/05 17:29:20
String s=new String("a");
System.out.print(s=="a");
输出true.
在执行语句s=="a"时,他应该把==右边的"a"当做一个新对象啊,那么应该时false才对啊。
不好意思,各位,我是看的一个帖子说是TRUE,我就在想应该是FALSE才对啊。被人误导再误导大家,不好意思。

输出不为true,是false,

System.out.print(s=="a");//是比较s的值是否是等于"a"

楼上说的意思大概是
String s=new String("a");
String d=new String("a");
System.out.print(s==d);
是比较两个句柄所指向内存中的对象是否相同,但是它两个每个声明了一个对象"a" 即使是值相同.但也是两个对象.

还有推荐以后进行字符串比较的时候用.equals()这个方法,这个就是比较值是否相同的

这样打出的是false 如何是s.equals("a")返回的是true

在java中不能用==来做比较,用equals,不然你看着是等于的,但实际上却错了

我还在想为什么是true,一实验,还是false,我靠,别误导人可否