这个代码什么部分有错误

public class TestConvert {
public static void main(String arg[]) {
int i1 = 123;
int i2 = 456;
double d1 = (i1+i2)*1.2;
float f1 = (i1+i2)*1.2;
byte b1 = 67;
byte b2 = 19;
byte b3 = b1+b2;
System.out.println(b3);
double d2 = 1e200;
float f2 = d2;
System.out.println(f2);
float f3 = 1.23;
long l1 = 123;
long l2 = 30000000000L;
float f = l1+l2+f3;
long l = f;

}

}

b1和b2在运算时会自动转换为int类型,而int类型的数据赋值给byte类型时就会有可能数据溢出,所以错误。