有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java代码混乱,编译很好。这个代码是如何工作的?

下面的代码编译并将1作为输出,这让我有点困惑。我试过javap这个,但从那里我也不明白。我查过类似的帖子,但在这里找不到类似的问题

看看代码:

int i = (byte) + (char) - (int) + (long) - 1;
System.out.println(i);

这里是字节码

Compiled from "Test.java"
public class Test {
  public Test();
  public static void main(java.lang.String[]);
}

这些类型在这里是如何工作的?它是否取决于数据类型的大小?代码是如何工作的


共 (1) 个答案

  1. # 1 楼答案

    这只是一系列与类型转换混合的一元+和-操作

    从-1开始,将其转换为long,一元加号不做任何事情,将其转换为int,一元减号(值现在为+1),转换为char,一元+,转换为byte