当前位置: 首页 > 面试题库 >

Java中的字符串:等于vs ==

仲孙宇定
2023-03-14
问题内容

String s1 = “andrei”;
String s2 = “andrei”;

  String s3 = s2.toString();

  System.out.println((s1==s2) + " " + (s2==s3));

提供以下代码,为什么第二个比较s2 == s3为true?s2.toString()返回的实际上是什么?实际位于哪里(s2.toString())


问题答案:

首先String.toString是无操作:

/**
 * This object (which is already a string!) is itself returned.
 *
 * @return  the string itself.
 */
public String toString() {
    return this;
}

其次,对String常量进行了插值,因此s1和s2在幕后被更改为相同的String实例。



 类似资料:
  • 问题内容: String[] letters = {“A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “L”}; 为什么是 Fk呀! 输入AL字母之一绝对不会发生? 问题答案: 字符串是对象。所述通过引用,而不是由它们的内部值进行比较的对象。 有两种解决方案: 使用method来比较两个对象的值。 使用代替。这是原始的,因此可以使用。

  • 问题内容: 请帮我,java中的string.equals如何与null值一起使用?例外情况有问题吗?三种情况: 结果的价值是什么?我期望这个值: result1为true; result2为假; result3为假; 问题答案: 您不能使用解引用(。)来访问实例变量或在实例上调用方法(如果该实例为)。这样做会产生一个。 通常,使用您知道为非null的东西进行字符串比较。例如,。

  • 问题内容: 我试图理解字符串比较与字符串比较的输出。需要明确的是,我拥有使用==和equals比较两个字符串的类。我试图将==和equals()的输出合并为字符串。equals()的输出会连续显示,但==的输出不会 连续显示。使用Java的装箱功能,将与字符串连接的布尔值联系起来。equals和==都返回布尔值。那么为什么会有这种差异呢?有人可以解释吗? 输出 更新:答案 如果不使用s1 == s

  • 问题内容: 快速提问。是否有等效于@的Java字符串: 例如,我可以使用C#进行处理,并使其在处理时忽略转义字符,而不必这样做。是否有Java等效项? 嗯:stackoverflow正在向我逃脱..大声笑。第二个示例应为: c :(双反斜杠)文件夹(双反斜杠)aFile 问题答案: 没有。转义/外部化字符串是您唯一的选择。

  • 我的应用程序有一个自动更新功能。为了验证它是否成功下载了文件,我比较了两个哈希,一个是xml,另一个是下载后生成的哈希。两个哈希是一样的,但我发现两个哈希不一样。当我检查大小时,xml哈希字符串有66个,另一个是36个。我使用了trim方法,但还是运气不好。 哈希代码

  • 我有10个数组列表和一个字符串变量。我有一个函数/方法,允许用户选择要添加到的数组列表之一。目前,该函数将字符串“selected”的值更改为正确的数组列表名称的值。 那么,如何使arrayList的名称等于String变量的值呢?