Java 有人能解释一下背后的逻辑吗

Java 有人能解释一下背后的逻辑吗,java,Java,它的输出是什么 1) 所以我预计输出量是99。但当我在eclipse上编译时,输出是0 2) 。我不明白背后的逻辑是什么 ((int)(char)(byte) -1) 在eclipse上运行时,我得到的输出是65535 j=j++; 在功能上等于 int xxx = j; j++; j = xxx; 因此j的值保持不变。(因为首先计算右侧,包括增量,然后将结果分配给j) 至于((int)(char)(byte)-1),字符大小为16位且无符号,因此-1的位模式导致65535 在功能上

它的输出是什么

1)

所以我预计输出量是99。但当我在eclipse上编译时,输出是0

2) 。我不明白背后的逻辑是什么

  ((int)(char)(byte) -1)
在eclipse上运行时,我得到的输出是65535

j=j++;
在功能上等于

int xxx = j;
j++;
j = xxx;
因此
j
的值保持不变。(因为首先计算右侧,包括增量,然后将结果分配给
j

至于
((int)(char)(byte)-1)
,字符大小为16位且无符号,因此-1的位模式导致65535

在功能上等于

int xxx = j;
j++;
j = xxx;
因此
j
的值保持不变。(因为首先计算右侧,包括增量,然后将结果分配给
j


至于
((int)(char)(byte)-1)
,char的大小为16位且无符号,因此-1的位模式导致65535。

这是因为++的工作方式如下:
a=0
a=a++;//a将在增量发生之前获得a当前值的赋值
,因此此处a=0

但是,在下一个例子中:
a=0

a=++a;//a将获得a的递增值的赋值,因此a=1在这里

这是因为++的工作方式如下:
a=0
a=a++;//a将在增量发生之前获得a当前值的赋值
,因此此处a=0

但是,在下一个例子中:
a=0

a=++a;//a将获得a增量值的赋值
,因此a=1在这里

它应该在code.stackexchange1中。请每个问题问一个问题。2.试着给你的问题起一个描述问题的名字。重复:1。2.J++和J=J+1一样,我不想粗鲁无礼,但我认为这些东西在互联网和大多数编程书籍中都有很好的解释。如果你想学习一门编程语言,读一本相关的书绝对是有帮助的。StackOverflow's是一个讨论更严肃(或者说更高级)问题的地方。学习基础知识,然后再试一次。您可能会发现programmers.stackexchange.com也很有用。您还应该在帮助中心为程序员和SOit检查使用条款,并将其放入code.stackexchange1中。请每个问题问一个问题。2.试着给你的问题起一个描述问题的名字。重复:1。2.J++和J=J+1一样,我不想粗鲁无礼,但我认为这些东西在互联网和大多数编程书籍中都有很好的解释。如果你想学习一门编程语言,读一本相关的书绝对是有帮助的。StackOverflow's是一个讨论更严肃(或者说更高级)问题的地方。学习基础知识,然后再试一次。您可能会发现programmers.stackexchange.com也很有用。您还应该在帮助中心检查程序员等的使用条款
int xxx = j;
j++;
j = xxx;