相关疑难解决方法(0)

Java中==和equals()之间有什么区别?

我想澄清一下我是否理解正确:

  • == - >是参考比较,即两个对象都指向相同的内存位置
  • .equals() - >计算对象中值的比较

我的理解是正确的吗?

java identity equality object-comparison

592
推荐指数
12
解决办法
62万
查看次数

Java中的字符串:equals vs ==

可能重复:
如何比较Java中的字符串?

  String s1 = "andrei";
  String s2 = "andrei";

  String s3 = s2.toString();

  System.out.println((s1==s2) + " " + (s2==s3));
Run Code Online (Sandbox Code Playgroud)

给出以下代码为什么第二个比较s2 == s3为真?实际上s2.toString()返回的是什么?实际位于何处(s2.toString())

java string reference

5
推荐指数
3
解决办法
2427
查看次数

比较java中的字符串

String string1 = "Hi there";
String string2 = "Hi";
String string3 = "Hi";

System.out.println(string1.substring(0, string2.length()) == string2); //1
System.out.println(string1.substring(0, string2.length()).equals(string2)); //2
System.out.println(string1.substring(0, string2.length()).compareTo(string2)); //3
System.out.println(string2 == string3); //4
System.out.println(string2.substring(0) == string3); //5
System.out.println(string2.substring(0) == string3.substring(0)); //6
Run Code Online (Sandbox Code Playgroud)

给我输出:

false
true
0
true
true
true
Run Code Online (Sandbox Code Playgroud)

我真的不明白第一行,为什么它给我假?

如果我向字符串2添加一个空格,这行我得到假,但如果我没有添加空格,我会得到:

System.out.println(string2.substring(0, string3.length()) == string3);
Run Code Online (Sandbox Code Playgroud)

为什么第1行给我假,但第6行是真的,但是如果我给string2添加一个空格,那就错了..

谢谢=)

java

0
推荐指数
2
解决办法
1999
查看次数

标签 统计

java ×3

equality ×1

identity ×1

object-comparison ×1

reference ×1

string ×1