java如何比较两个不同大小的原始数据类型

Kas*_*yap 4 java primitive types primitive-types

在Java中如何可以在两种不同的原始数据类型,如int a = 3byte b = 3进行比较?

我注意到大小int是4个字节,而byte只有1个字节.这是一个按位比较吗?

Sil*_*olo 5

它没有.它永远不会.

int a = 3;
byte b = 3;
if (a == b) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

这不是a int和a 之间的比较byte.==只能比较相同类型的基元.所以这是a int和an 之间的比较int(因为int两者中较宽的一个).它等同于以下更明确的代码.

int a = 3;
byte b = 3;
if (a == (int)b) {
  ...
}
Run Code Online (Sandbox Code Playgroud)