跳转至

02 变量与数据类型

本章目标

  • 理解什么是变量
  • 掌握 8 种基本数据类型
  • 掌握引用类型(String 等)
  • 学会类型转换

2.1 什么是变量?

变量就是给数据起个名字,存在内存里。程序运行时会用到各种数据(数字、文字、真假值),我们把它们存进变量里,随时取用。

int age = 18;           // 定义一个整数变量 age,赋值为 18
String name = "小明";    // 定义一个字符串变量 name,内容是"小明"
System.out.println(name + "今年" + age + "岁");

输出:

小明今年18岁

变量三要素

数据类型  变量名  =  初始值;
  ↓        ↓       ↓
 int      age   =  18;
  1. 数据类型:这个变量能装什么类型的数据
  2. 变量名:给数据起的名字(要符合命名规则)
  3. 初始值:第一次放进去的数据(也可以先声明后赋值)

命名规则(必须遵守)

  • 只能包含字母、数字、下划线 _、美元符 $
  • 不能以数字开头
  • 不能用关键字(如 class、int、public 等)
  • 习惯上用小驼峰:myAge、playerCount、totalScore

错误示范

int 2x = 5; ❌ 数字开头
int class = 5; ❌ 用了关键字
String 名字 = "小明"; ✅ 其实中文变量名合法,但不建议

2.2 基本数据类型(8 种)

Java 有 8 种基本类型,分三类:

整数型(4 种)

类型 占用 取值范围 例子
byte 1 字节 -128 ~ 127 byte b = 100;
short 2 字节 约 -3.2万 ~ 3.2万 short s = 30000;
int 4 字节 约 ±21亿 int i = 1000000;
long 8 字节 极大 long l = 10000000000L;

最常用的是 int。long 类型赋值时末尾要加 L 或 l。

浮点型(2 种)

类型 占用 说明 例子
float 4 字节 单精度,末尾要加 F float f = 3.14F;
double 8 字节 双精度,默认 double d = 3.14;

最常用的是 double。模组里坐标、速度都是 double。

字符与布尔(2 种)

char c = 'A';       // 单个字符,用单引号
boolean flag = true; // 布尔值:true / false

boolean 只有两个值,用于判断。模组里"方块有没有被激活""玩家是不是生存模式"都用它。

2.3 引用类型:String

String 是引用类型(不是基本类型),表示一串字符:

String name = "小明";
String greeting = "你好,";
System.out.println(greeting + name);   // + 号拼接字符串

String 本身是类,有很多方法(第 10 章详细讲):

String s = "Hello World";
System.out.println(s.length());    // 长度:11
System.out.println(s.toUpperCase()); // 转大写:HELLO WORLD

基本类型 vs 引用类型

基本类型 引用类型
存的什么 真正的值 对象的"地址"(引用)
例子 int、double、boolean String、数组、后面学的类
默认值 0 / 0.0 / false null(空)

null 是什么

引用类型变量没有指向任何对象时是 null。对 null 调用方法会报 NullPointerException(空指针异常)——这是 Java 最常见的报错,第 12 章会讲怎么处理。

2.4 类型转换

自动转换(小范围 → 大范围)

int a = 10;
double b = a;       // int 自动变成 double,安全
System.out.println(b);  // 10.0

强制转换(大范围 → 小范围,可能丢失精度)

double d = 9.8;
int i = (int) d;     // 强制转换,直接砍掉小数
System.out.println(i);  // 9

常见坑:整数除法

int a = 7;
int b = 2;
System.out.println(a / b);   // 3 !不是 3.5

两个整数相除结果是整数(向下取整)。想要小数,至少要有一个是 double:

System.out.println((double) a / b);  // 3.5
System.out.println(a / (double) b);  // 3.5

字符串转数字 / 数字转字符串

String num = "42";
int n = Integer.parseInt(num);   // "42" -> 42
double d = Double.parseDouble("3.14");

int x = 99;
String s = String.valueOf(x);    // 99 -> "99"

2.5 常量与 var

final 常量

final double PI = 3.14159;
// PI = 3.0;  // ❌ 报错:final 变量不能重新赋值

模组开发里大量使用 final(比如注册名、配置项)。

var(Java 10+)

var name = "小明";     // 编译器自动推断类型,等价于 String name = "小明"
var age = 18;          // 等价于 int age = 18

var 只是偷懒写法,类型还是要明确知道。项目里建议:局部变量可用 var,其他场合写清楚类型。

2.6 小练习

  1. 定义变量:你的名字(String)、年龄(int)、身高(double)、是否成年(boolean),打印出来
  2. 算 10 / 4 和 10.0 / 4 的区别
  3. 把 "123" 转成 int 再乘 2 输出

本章小结

  • 变量 = 数据类型 + 变量名 + 值
  • 基本类型 8 种:byte/short/int/long/float/double/char/boolean
  • String 是引用类型,用双引号
  • 整数相除会丢小数,注意转换
  • final 定义常量,var 让编译器推断类型

下一章:03 运算符与表达式

🏠 返回总站