当前位置: 首页 > 知识库问答 >
问题:

为什么“”可以处理包装类,而“==”却不行?[副本]

靳茂
2023-03-14
Integer a=150;
Integer b=150;
System.out.println(a==b); //returns false

Integer a=150;
Integer b=150;
System.out.println(a>=b); // returns true

为什么会出现这种情况?

共有1个答案

廉学潞
2023-03-14

<<=>=运算符仅为基元类型定义。因此,在包装类型上使用它们会导致编译器将对象解箱到基元中。

这意味着

System.out.println(a>=b);

相当于

System.out.println(a.intValue()>=b.intValue());
 类似资料:
  • 好的,我正在使用gradle编译4个源集,一个是main,另外3个是反射加载的其他小段代码,这些代码基于稍后在“服务器”中可用的其他类。

  • 问题内容: 我知道适用于一般不可变类的常见原因,即 不能改变为副作用 容易推断他们的状态 本质上是线程安全的 无需提供克隆/复制构造函数/工厂复制方法 实例缓存 无需防御副本。 但是,包装器类表示原始类型,并且原始类型是可变的。那么为什么包装器类不可变? 问题答案: 但是,包装器类表示原始类型,并且原始类型(String除外)是可变的。 首先,String不是原始类型。 其次,谈论原始类型是可变的

  • 问题内容: 在课堂上,我在玩耍,发现CSS可以与虚构元素一起使用。 例: 当我的教授第一次看到我使用此功能时,他对组合元素起作用感到惊讶,并建议我将所有组合元素更改为带有ID的段落。 为什么我的教授不希望我使用虚构元素?他们有效地工作。 另外,他为什么不知道组成元素存在并且可以与CSS一起使用。他们不常见吗? 问题答案: 为什么CSS可以处理假元素? (大多数)浏览器被设计为(在某种程度上)与将来

  • 为什么静态和默认接口方法不能同步? 人们说synchronized是一个实现细节。嗯,strictfp也是一个实现细节,但这并不妨碍在静态和默认接口方法上允许strictfp。 默认方法是继承的,如果实现接口的类不重写默认方法,那么将其同步可能非常方便。 我猜测synchronized(以及strictfp)不是继承的(我在这里说的对吗?),但这并不能解释为什么strictfp被允许用于静态和默认