short是16位有符号整型,取值范围-32768~32767;声明可初始化或未初始化(局部变量需显式赋值),支持多变量声明,字面量赋值需在范围内,隐式转换需强制类型转换,区别于包装类short。

用 short 关键字直接声明,语法和其他基本类型一致:数据类型 + 变量名,可选初始化。
标准声明写法
最常见、最清晰的写法是声明时同时赋初值:
- short age = 25; —— 合法,25 在 -32768~32767 范围内
- short count; —— 合法,但局部变量必须在使用前显式赋值;类成员变量会自动初始化为 0
- short price = 100000; —— 编译报错,超出最大值 32767
声明多个 short 变量
可在同一行声明多个同类型变量,用逗号分隔:
- short a = 10, b = -5, c; —— a 和 b 初始化,c 未赋值(局部变量需后续赋值才可用)
- short x, y, z = 0; —— x、y 未初始化,z 初始化为 0
注意字面量与隐式转换
编译器对小整数字面量有特殊处理,但仅限于“确定不越界”的情况:
- short s = 10 + 5; —— 允许,因为 15 是常量表达式且在 short 范围内
- int i = 10; short t = i; —— 不允许,必须强制转换:short t = (short) i;
- short u = 32768; —— 编译失败,超上限;short v = -32769; 同样失败,超下限
和包装类 Short 的区别
不要混淆基本类型 short 和其包装类 Short:
- short s = 42; —— 基本类型,轻量、高效,存于栈或字段中
- Short obj = Short.valueOf(42); —— 对象类型,用于泛型、集合或需要 null 的场景
- 不推荐用 new Short(42),valueOf 更安全且支持缓存
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











