变量与数据类型
变量是存储数据的容器,本课学习Java中的变量和数据类型。
什么是变量
变量是内存中的一块存储空间,用来保存数据。
变量三要素
| 要素 | 说明 | 示例 |
|---|---|---|
| 类型 | 存储什么种类的数据 | int、double、String |
| 名称 | 如何找到这个变量 | age、price、name |
| 值 | 变量中存储的数据 | 25、9.99、"Alice" |
声明变量
JAVA
// 先声明,后赋值
int age;
age = 25;
// 声明并赋值
int age = 25;
// 同时声明多个同类型变量
int x = 1, y = 2, z = 3;
命名规则
语法规则(必须遵守)
| 规则 | 正确 | 错误 |
|---|---|---|
| 只能包含字母、数字、下划线、$ | myVar |
my-var |
| 不能以数字开头 | name1 |
1name |
| 不能使用Java关键字 | myClass |
class |
| 区分大小写 | age ≠ Age |
— |
命名规范(建议遵守)
| 规范 | 示例 | 说明 |
|---|---|---|
| 小驼峰命名法 | myVariableName |
变量、方法名 |
| 有意义的名称 | studentAge |
不要用a、b、temp |
| 常量全大写 | MAX_VALUE |
用下划线分隔 |
基本数据类型
Java有8种基本数据类型(primitive types)。
整数类型
| 类型 | 大小 | 范围 | 示例 |
|---|---|---|---|
byte |
1字节 | -128 ~ 127 | byte b = 100; |
short |
2字节 | -32768 ~ 32767 | short s = 1000; |
int |
4字节 | -21亿 ~ 21亿 | int i = 100000; |
long |
8字节 | 更大范围 | long l = 100L; |
💡 默认使用
int,需要更大范围时用long(加L后缀)。
浮点类型
| 类型 | 大小 | 精度 | 示例 |
|---|---|---|---|
float |
4字节 | 6-7位小数 | float f = 3.14f; |
double |
8字节 | 15位小数 | double d = 3.14; |
💡 默认使用
double,需要float时加f后缀。
字符类型
JAVA
char c1 = 'A'; // 单个字符用单引号
char c2 = '中'; // 可以存中文字符
char c3 = 65; // 也可以用ASCII码值
布尔类型
JAVA
boolean isTrue = true;
boolean isFalse = false;
💡 注意: Java中布尔值只能是
true或false,不能用0或1表示。
引用数据类型
除了8种基本类型,其他都是引用类型。
常见引用类型
JAVA
String name = "Alice"; // 字符串
int[] arr = {1, 2, 3}; // 数组
Object obj = new Object(); // 对象
String字符串
JAVA
// 字符串用双引号
String greeting = "Hello, World!";
// 字符串拼接
String fullName = "张" + "三";
// 字符串长度
int len = greeting.length(); // 13
类型转换
自动类型转换(小→大)
JAVA
int i = 100;
long l = i; // int自动转long
double d = i; // int自动转double
强制类型转换(大→小)
JAVA
double d = 3.14;
int i = (int) d; // 强制转换,结果为3(截断小数)
long l = 100;
int i = (int) l; // 强制转换
⚠️ 注意: 强制转换可能丢失精度或数据溢出,需要谨慎使用。
示例:类型转换
JAVA
public class TypeConversion {
public static void main(String[] args) {
// 自动类型转换
int a = 100;
long b = a;
double c = a;
System.out.println("int: " + a); // 100
System.out.println("long: " + b); // 100
System.out.println("double: " + c); // 100.0
// 强制类型转换
double d = 3.99;
int e = (int) d;
System.out.println("double: " + d); // 3.99
System.out.println("int: " + e); // 3(截断,不是四舍五入)
}
}
final常量
使用final关键字定义常量,值一旦赋值就不能修改。
JAVA
final double PI = 3.14159;
final String APP_NAME = "MyApp";
final int MAX_SIZE = 100;
// PI = 3.14; // 错误!常量不能修改
💡 命名规范: 常量名全大写,用下划线分隔。
var局部变量类型推断
Java 10引入了var关键字,可以自动推断变量类型。
JAVA
// 传统写法
String name = "Alice";
ArrayList<String> list = new ArrayList<String>();
// 使用var
var name = "Alice"; // 自动推断为String
var list = new ArrayList<String>(); // 自动推断为ArrayList<String>
⚠️ 注意:
var只能用于局部变量,不能用于类成员变量或方法参数。
❓ 常见问题
Q int和Integer有什么区别?
A int是基本类型,Integer是包装类(引用类型)。Integer可以为null,int不能。
Q float和double怎么选?
A 一般用double,精度更高。只有在需要节省内存或处理大量浮点数时用float。
Q String是基本类型吗?
A 不是。String是引用类型,但Java对其有特殊支持,可以直接用字面量赋值。
📖 小节
- 变量是存储数据的容器,有类型、名称、值三要素
- Java有8种基本类型:byte/short/int/long/float/double/char/boolean
- 默认用int和double,需要更大范围时用long和float
- 类型转换分自动(小→大)和强制(大→小)
- final定义常量,值不能修改
- var可以自动推断类型(Java 10+)
📝 作业
- 变量练习: 定义变量存储你的姓名、年龄、身高、体重,并输出
- 类型转换: 将double值3.14转为int,观察结果;将int值100转为double,观察结果
- 常量练习: 定义圆周率PI,计算半径为5的圆的面积
下一课
下一课我们将学习 运算符,了解Java中的各种运算操作。



