相关疑难解决方法(0)

为什么我不能添加两个字节并得到一个int,我可以添加两个最后的字节得到一个字节?

public class Java{
    public static void main(String[] args){
        final byte x = 1;
        final byte y = 2;
        byte z = x + y;//ok
        System.out.println(z);

        byte a = 1;
        byte b = 2;
        byte c = a + b; //Compiler error
        System.out.println(c);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果涉及任何int-sized或者更小的表达式的结果总是为int,即使两个字节的总和适合一个字节.

当我们添加两个适合字节的最终字节时,为什么会这样? 没有编译器错误.

java int scjp variable-assignment ocpjp

27
推荐指数
2
解决办法
2万
查看次数

在原子性方面,i ++和i = i + 1之间的差异

我知道i ++不是一个线程安全的操作.我也理解为什么i ++比i = i + 1更快.在线程安全方面,i = i + 1与i ++有什么不同吗?任何字节码级别的解释都非常有用.

java thread-safety atomicity

1
推荐指数
2
解决办法
4090
查看次数

标签 统计

java ×2

atomicity ×1

int ×1

ocpjp ×1

scjp ×1

thread-safety ×1

variable-assignment ×1