变量与数据类型

变量是存储数据的容器,本课学习Java中的变量和数据类型。

什么是变量

变量是内存中的一块存储空间,用来保存数据。

变量三要素

要素 说明 示例
类型 存储什么种类的数据 intdoubleString
名称 如何找到这个变量 agepricename
变量中存储的数据 259.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
区分大小写 ageAge

命名规范(建议遵守)

规范 示例 说明
小驼峰命名法 myVariableName 变量、方法名
有意义的名称 studentAge 不要用abtemp
常量全大写 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中布尔值只能是truefalse,不能用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对其有特殊支持,可以直接用字面量赋值。

📖 小节

📝 作业

  1. 变量练习: 定义变量存储你的姓名、年龄、身高、体重,并输出
  2. 类型转换: 将double值3.14转为int,观察结果;将int值100转为double,观察结果
  3. 常量练习: 定义圆周率PI,计算半径为5的圆的面积

下一课

下一课我们将学习 运算符,了解Java中的各种运算操作。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏