变量、数据类型、表达式
一、变量
1. 概念
变量是计算机内存中一块存储空间,也是程序存储数据的基本单元。
2. 组成
变量由三部分构成:数据类型、变量名、存储的数据。
3. 变量定义方式
- 先声明,后赋值
- 声明同时赋值(常用)
- 一次性定义多个同类型变量
二、数据类型(核心重点)
Java 是强类型语言,要求变量必须指定数据类型,不同类型只能存储对应数据。数据类型分为两大类:基本数据类型和引用数据类型。
(一)八大基本数据类型
共 4 大类 8 种类型,附带占用字节、取值范围与使用注意事项。
1. 整数类型(4 种)
| 关键字 | 占用字节 | 取值范围 | 补充说明 |
|---|---|---|---|
| byte | 1B | -128 ~ 127 | 字节型 |
| short | 2B | -32768 ~ 32767 | 短整型 |
| int | 4B | -2147483648 ~ 2147483647 | 默认整数类型 |
| long | 8B | 范围极大 | 字面量末尾必须加L/l,推荐大写 L |
补充单位换算:1 B(字节)=8 b(位)
1024B=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB
2. 浮点类型(小数,2 种)
| 关键字 | 占用字节 | 说明 |
|---|---|---|
| float | 4B | 单精度浮点,字面量末尾必须加 F/f |
| double | 8B | 双精度浮点,默认小数类型,后缀 d/D 可省略 |
- 特点:浮点型底层以科学计数法存储,存储的是近似值。
- 面试题:
int和float均占 4 字节,float 数据范围更大,因为支持科学计数法。
3. 字符类型
- 关键字:
char,占用2B - 三种赋值形式:
- 单引号包裹单个字符(支持汉字):
char c = 'A'; char ch = '中'; - 直接赋值数字(对应 Unicode 编码,范围 0~65535):
char c = 65; // 对应字符 A - Unicode 格式赋值:
char c = '\u0041';
- 单引号包裹单个字符(支持汉字):
- 转义字符(使用英文符号):
\n换行、\t水平制表符 (空格)、\\反斜杠、\'单引号、\"双引号
4. 布尔类型
- 关键字:
boolean,一般占用 1B - 取值只有两个:
true(真)、false(假) - 注意:和 C 语言不同,Java 布尔类型不使用 0/1 代替真假,只能写 true/false。
(二)引用数据类型
存储的是对象的地址,目前入门阶段重点掌握:
- 类、接口、数组、字符串
String - 字符串:使用双引号包裹多个字符,示例:
String str = "Hello Java";
三、数据类型转换
1. 自动类型提升(隐式转换)
规则:取值范围小的类型 自动转为 取值范围大的类型,无需手动处理。转换顺序:
byte → short → int → long → float → doublechar → int → long → float → double
2. 强制类型转换(显式转换)
场景:大范围类型 赋值给 小范围类型,必须手动强转,存在数据丢失风险。
- 语法
- 转换规则:1.浮点转整数:直接截断小数部分,只保留整数 2.数值在目标类型合理范围内:数据完整保留 3.数值超出范围:数据截断,结果异常
- 重要说明:
boolean类型不参与任何类型转换。
四、表达式
- 概念:由变量、常量、运算符组成的式子,运算后会产生一个结果。
- 运算结果类型规则(多类型混合运算):
- 只要有
double,结果为double - 无 double、有
float,结果为float - 无浮点型、有
long,结果为long - 其余所有情况,结果统一为
int
- 只要有
五、运算符
1. 算术运算符
+、-、*、/、%(取模 / 取余)
- 特殊规则:
+两端任意一侧为String时,作用变为字符串拼接。
2. 赋值运算符
基础赋值:=
复合赋值:+=、-=、*=、/=、%=
3. 一元运算符(自增 / 自减)++、--
分为前置和后置,核心区别:使用顺序
- 后置
a++:先使用原值运算,再自身 + 1 - 前置
++a:先自身 + 1,再使用新值运算 - 日常开发仅需变量自增 / 自减,两种写法无区别;面试常考细节区分。
4. 关系运算符
>、>=、<、<=、!=
- 运算结果固定为
boolean类型(true /false),也叫布尔表达式。
5. 逻辑运算符
作用:连接多个布尔表达式,结果仍为布尔值
| 运算符 | 名称 | 特点 | |
|---|---|---|---|
&& | 短路与 | 左边为 false,右侧不执行 | |
& | 非短路与 | 无论左侧结果,两侧都会执行 | |
| ` | ` | 短路或 | 左边为 true,右侧不执行 |
| ` | ` | 非短路或 | 无论左侧结果,两侧都会执行 |
! | 逻辑非 | 取反操作 |
面试题:&&和&的区别
相同:逻辑与,两侧全为 true,结果才为 true;
不同:&&是短路运算符,左侧为 false 直接终止运算;&会完整执行左右两侧表达式。
6. 条件运算符(三元 / 三目运算符)
- 语法:
布尔表达式 ? 表达式1 : 表达式2; - 执行逻辑:布尔结果为
true→ 执行表达式 1布尔结果为false→ 执行表达式 2
六、Scanner 键盘录入
实现控制台手动输入数据,入门必备交互功能。
1. 第一步:创建扫描器对象
2. 常用录入方法
七、本节总结
- 变量是存储数据的容器,牢记三种定义格式;
- 8 种基本数据类型是 Java 基础重中之重,熟记字节、范围、特殊后缀要求;
- 自动转换、强制转换是高频易错点,尤其结合
byte运算的场景; - 运算符区分使用场景,重点掌握自增、逻辑短路、复合赋值三大面试考点;
- Scanner 实现键盘录入,可结合前面知识点完成简单交互程序练习。
