当前位置: java社区 > 01-初学乍练 > 阅读正文

java运算类型自动提升

2021.8.17.   226 次   327字

java在进行算数运算时,byte,short,char类型会自动被提升为int

例如,以下代码是错误的

        byte b1 = 10;
        byte b2 = 20;
        byte b3 = b1 + b2;   // 编译错误
        short s1 = 10;
        short s2 = 20;
        short s3 = s1 + s2;  // 编译错误
        char c1 = 10;
        char c2 = 20;
        char c3 = c1 + c2;  // 编译错误

如果把b3,s3,c3换为int,就不会报错。

这是因为,java算数运算时默认以int进行运算,比int更小的数据类型在算术运算后会至少会得到int,故byte,short,char会编译报错。

此外,如果 byte,short,char进行自操作如++并不报错,自操作虽然等价于算术运算,但工作原理和算数运算不同。

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群