关于+=复合运算

来源:百度知道 编辑:UC知道 时间:2024/06/01 05:54:30
//

在C#与java中,
byte b=100;
b=b+100;
编译通不过(类型转换造成),而

byte b=100;
b+=100;
能编译通过,
能否给出详细解释。

还请高手赐教。

这类题目,反编译一下就可以找到答案了

对下面的类进行反编译

public class test{
public static void main(String args[]){
byte a = 30;
a +=40;
int b = 20;
b = b+41;
}
}

得到

C:\java> javap -c test
Compiled from "test.java"
public class test extends java.lang.Object{
public test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object." <init> ":()V
4: return

public static void main(java.lang.String[]);
Code:
0: bipush 30
2: istore_1
3: iload_1
4: bipush 40
6: iadd
7: i2b
8: istore_1
9: bipush 20
11: istore_2