关于java字符串方法问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 03:18:11
小弟学到了public boolean equals方法,书上有这么一个例子:
String tom=new ("we are student");
String boy=new ("we are student");
String jerry=new ("we are student");则tom.equals(boy)的值是false,
tom.equals(jerry)的值是ture。小弟一点也不明白了!
这个方法定义为:比较当前字符串对象的实体是否与参数指定的字符串s的实体相同。那么,tom boy jerry的实体不是都是we are students 么?为什么有false也有true呢?
谢谢大虾!

String tom = new ("we are student")
这个程序居然能编译成功??
不能把。。。。。
虽然不明白你说的具体情况
不过 equals是这样的
这个方法是继承自Object类
一般的类中一般都不会覆盖他, 他的原本含义是比较两个对象是否相同
例如:
Person person1 = new Person();
Person person2 = person1;
这样的时候,这两个对象 equals 就会得到true

不过在String类中, 他被覆盖了,
变成了新的含义,他是说 两个字符串中的内容相同
则返回true, 否则为false,
大概就是这样地。

String tom=new ("we are student"); 你这样写能通过编译?

我的是通不过,要这样写才行
String tom=new String("we are student");

而且,我比较的两个结果都是true

内存地址相同则hash就相同,是true,new tom = new String("toms");
创建了两个String Object