short是Java中16位有符号整数类型,取值范围-32768~32767;声明时需注意字面量默认为int,超范围须强制转换;运算中自动提升为int,赋值需显式强转;适用于内存敏感或协议对齐等特定场景。

short 是 Java 中的基本数据类型之一,用来表示 16 位有符号整数,取值范围是 -32768 到 32767(即 -2¹⁵ 到 2¹⁵-1)。
short 的声明和初始化
可以直接用字面量赋值,但要注意:Java 编译器会把没有后缀的整数字面量默认当作 int 类型。所以如果直接写超出 short 范围的数,或想明确用 short,推荐显式强制转换或使用小范围字面量:
-
合法写法:
short s1 = 100;(100 在 short 范围内,编译器自动窄化) -
需要强制转换:
short s2 = (short) 50000;(50000 超出范围,截断高位) -
不合法写法:
short s3 = 50000;(编译报错:可能损失精度)
short 在运算中容易被自动提升为 int
Java 规定:所有整数运算(如 +、-、*、/)中,short、byte、char 都会先被提升为 int 再计算。这意味着:
-
short a = 10, b = 20; short c = a + b;—— 这行会编译失败,因为a + b结果是 int,不能直接赋给 short - 正确写法:
short c = (short)(a + b);(手动强转) - 方法参数传参时也一样:调用
void foo(short x),传入foo(10)可以(字面量在范围内),但foo(a + b)就必须强转
什么时候该用 short?
它不是常用类型,多数场景用 int 更安全自然。适合以下情况:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~