gpt4 book ai didi

java - 这两个变量如何相同?

转载 作者:行者123 更新时间:2023-12-02 11:15:36 24 4
gpt4 key购买 nike

为什么是这两个整数

Long num = new Long(21); 
long num2 = 21;

比较时返回 true (num==num2)

但是这个字符串

String word1 = "Hello";
String word2 = new String("Hello");

比较时返回 false (word1==word2)?

最佳答案

在第一种情况下,您将 Long 引用与 long 基元类型进行比较,在这种情况下,Long 引用会自动变为 unboxing conversion ,并且比较是在两个原始 long 之间进行的,因此它们是相等的。这与 JLS §5.6.2 - Binary Numeric Promotion 一致。

在第二种情况下,您正在比较两个不同的引用,它们都指向两个不同的对象,因此它们具有不同的值,并返回false

关于java - 这两个变量如何相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22231524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com