gpt4 book ai didi

java - primitive == Wrapper 转换为 primitive == primitive 或 Wrapper == Wrapper?

转载 作者:行者123 更新时间:2023-11-29 05:25:11 30 4
gpt4 key购买 nike

我假设 jls 中描述的转换是根据优先级排序的。首先具有更高的优先级。

jls

因此我解决了 BoxingUnboxing 具有更高的优先级。我决定检验这个假设。

研究以下代码:

public class BoxingUnboxingPriority {
public static void main(String [] args){
int sn = 1000;
Integer isn1= new Integer(sn);
System.out.println(sn == isn1 );

}
}

出局:

true

什么是拳击?只是 new Integer(primitiveInt)

我稍微修改了一下代码

int sn = 1000;
Integer isn1= new Integer(sn);
Integer isn2= new Integer(sn);
System.out.println(isn1 == isn2 );

出局:

错误

所以我错了。

请澄清这个问题。

最佳答案

relevant section :

15.21.1. Numerical Equality Operators == and !=

If the operands of an equality operator are both of numeric type, or one is of numeric type and the other is convertible (§5.1.8) to numeric type, binary numeric promotion is performed on the operands (§5.6.2).

所以:

Integer o = 1;
int i = 1;
boolean b = o == i;

...等同于:

boolean b = o.intValue() == i;

两者都是 Integer 类型,两者都不是原始数字类型 - 它们都是 object references .

关于java - primitive == Wrapper 转换为 primitive == primitive 或 Wrapper == Wrapper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22935935/

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