974 字
5 分钟
Java 变量与基本数据类型

一、字段和变量#

变量(variable)是一个存储位置,它拥有一个类型,该类型可以是基本类型或引用类型。简单来说:变量 = 程序运行过程中用于保存数据的一个命名存储空间

字段(field)是作为类或接口成员的变量。字段必须满足:

  • 是变量
  • 属于某个 class 或 interface
  • 定义在类的成员位置

1. Bicycle 类示例#

以 Bicycle 类为例:

class Bicycle {
static int cadence = 0;
int speed = 0;
int gear = 1;
void changeCadence(int newValue) {
cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
void printStates() {
IO.println("cadence:" +
cadence + " speed:" +
speed + " gear:" + gear);
}
}

2. 四种变量类型#

  1. 实例变量(非静态字段)——对象将自身状态存储在”非静态字段”中,即没有使用 static 关键字声明的字段。非静态字段也称为实例变量,因为它们的值对于类的每个实例(每个对象)都是唯一的
  2. 类变量(静态字段)——使用 static 关键字声明的字段;这告诉编译器,无论类被实例化多少次,该变量都只有一个副本
  3. 局部变量——类似于对象将状态存储在字段中,方法通常会将临时状态存储在局部变量中。没有特殊关键字来指定变量是否为局部变量,这种判断完全取决于声明位置——即方法的左大括号和右大括号之间。因此局部变量仅对声明它们的方法可见,类的其他部分无法访问它们
  4. 参数——参数始终被归类为”变量”,而不是”字段”

二、Java 基本数据类型(Primitive Types)#

1. 概述#

Java 是静态类型语言:所有变量使用前必须声明类型和名称。基本数据类型由语言预定义,使用保留关键字命名,共八种,不共享状态。

2. 八种基本数据类型#

类型位数范围 / 说明备注
byte8 位-128 ~ 127适用于节省内存的大型数组
short16 位-32768 ~ 32767适用于节省内存场景
int32 位-2³¹ ~ 2³¹-1默认整数类型
long64 位-2⁶³ ~ 2⁶³-1数值后加 Ll
float32 位单精度浮点数不适合精确计算(如货币),推荐 BigDecimal
double64 位双精度浮点数默认浮点类型
booleantruefalse布尔类型
char16 位'\u0000' ~ '\uffff'Unicode 字符

3. 默认值#

未初始化的字段自动获得默认值:

  • 数值类型:0long0L
  • booleanfalse
  • char'\u0000'

4. 字面量(Literals)#

字面量是直接在代码中表示固定值的写法:

  • 整数字面量——默认 int,加 L/llong,支持下划线分隔(如 1_000_000
  • 浮点字面量——默认 double,加 F/ffloat
  • 字符字面量——单引号,如 'C'
  • 布尔字面量——truefalse

5. 使用建议#

  • 优先使用 int 处理整数
  • 大整数使用 long
  • 浮点计算优先使用 double
  • 节省内存时考虑 byteshortfloat
  • 精确值避免使用 floatdouble(应使用 BigDecimal

总结#

变量是程序运行时的命名存储空间,字段是作为类成员的变量。Java 共有四种变量(实例变量、类变量、局部变量、参数)和八种基本数据类型。记住两个关键点:

  • 字段有默认值,局部变量必须显式初始化
  • 精确计算用 BigDecimal不要用 float/double
Java 变量与基本数据类型
https://www.choria.top/posts/variables/
作者
乔瑞雅·克林威尔
发布于
2026-07-23
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取