最近Java老师讲了变量、数据类型和表达式,整理了一下笔记,分享给大家。内容比较基础,适合刚入门的小伙伴们。
一、变量——计算机里的“小盒子”
1.1 什么是变量?
变量就是计算机内存中的一块存储空间,用来存放数据。可以把它理解成一个带标签的“小盒子”,盒子里可以放数字、文字等。
1.2 变量的组成
· 数据类型:决定盒子能放什么类型的“东西”
· 变量名:盒子的标签,方便找到它
· 数据:盒子里实际存的值
1.3 如何定义变量?(三种方式)
```java
// 方式1:先声明,后赋值
int age; // 声明一个整型变量 age
age = 18; // 赋值
// 方式2:声明的同时赋值
int score = 95;
// 方式3:同时定义多个同类型变量
int a = 10, b = 20, c; // c 未赋值,后面再用
```
—
二、数据类型——8种基本类型 + 引用类型
Java是强类型语言,变量一旦定义类型,就只能存该类型的数据。
2.1 基本数据类型(8种)
(1)整数类型
关键字 字节数 取值范围
byte 1字节 -128 ~ 127
short 2字节 -32768 ~ 32767
int 4字节 -21.47亿 ~ 21.47亿
long 8字节 大约 -922京 ~ 922京-1
注意:long 类型的值后面要加 L(大写L更清晰),例如 long money = 10000000000L;
(2)浮点类型(小数)
类型 关键字 字节数 赋值注意
单精度 float 4字节 必须加 f 或 F
双精度 double 8字节 可加 d 或 D,也可不加
```java
float price = 19.9f;
double pi = 3.1415926;
```
面试小知识:int 和 float 都是4字节,但 float 能表示的范围更大,因为它采用科学计数法存储。
(3)字符类型(char)
· 占2字节,用单引号括起来
· 可以存中文、英文字母、数字字符
```java
char c1 = 'A';
char c2 = '中'; // Java 中一个汉字就是一个字符
char c3 = 65; // 用整数表示,对应 ASCII 码 'A'
char c4 = '\\u0041'; // Unicode 表示,也是 'A'
```
转义字符(常用):
· \\n —— 换行
· \\t —— 制表符(Tab)
· \\\\ —— 反斜杠本身
· \\' —— 单引号
· \\" —— 双引号
(4)布尔类型(boolean)
只有两个值:true 和 false。不能用 0 或 1 代替。
```java
boolean isPass = true;
boolean isOk = false;
```
2.2 引用数据类型
除了8种基本类型,其他都是引用类型,例如:类、接口、数组、字符串。
```java
String name = "张三"; // 字符串用双引号
```
三、数据类型转换
3.1 自动类型提升(小 → 大)
规则:byte → short → int → long → float → double
char → int → long → float → double
```java
int a = 10;
double b = a; // 自动提升,b = 10.0
```
3.2 强制类型转换(大 → 小)
语法:(目标类型) 变量
```java
double d = 12.9;
int i = (int) d; // 结果为 12(截断,不是四舍五入)
```
注意:如果大类型的数据超出了小类型的范围,会溢出(截断)。
例如 int i = 257; byte b = (byte) i; 结果为 1。
boolean 类型不能参与任何类型转换
四、表达式——式子也会“升类型”
表达式由变量、运算符、字面值组成,运算后会得到一个结果。
结果类型规则(重要!):
1. 有 double → 结果为 double
2. 无 double,有 float → 结果为 float
3. 无 double/float,有 long → 结果为 long
4. 其他情况(byte、short、char、int)→ 结果都为 int
```java
byte b = 1;
byte b2 = b + 1; // 编译报错!因为 b+1 结果是 int 类型
```
五、运算符
5.1 算术运算符
```java
+ – * / % // 加减乘除、取余(模)
```
如果 + 两边有字符串,则变成拼接:"Hello" + 123 → "Hello123"
5.2 赋值运算符
= += -= *= /= %=等。
注意:复合赋值运算符没有自动类型提升,但自带强转效果。
```java
byte b = 1;
b += 1; // 编译通过,相当于 b = (byte)(b + 1)
```
5.3 自增自减(++ / –)
· a++ :先使用 a 的值,再让 a 加 1
· ++a :先让 a 加 1,再使用新值
```java
int a = 1;
int c = a++; // c = 1, a = 2
int b = 1;
int d = ++b; // d = 2, b = 2
```
开发中一般单独写 a++ 或 ++a 自增即可,除非面试题才会区分前后。
5.4 关系运算符
结果都是 boolean 类型:true 或 false
```java
> >= < <= == !=
```
5.5 逻辑运算符
运算符 名称 说明
&& 逻辑与(短路) 两边都为 true,结果才为 true;若左边为 false,右边不执行
||逻辑或(短路) 至少一个为 true,结果为 true;左边 true 则右边不执行
! 逻辑非 取反
& 与(非短路) 两边都为 true 才为 true,不管左边结果如何,右边都会执行
| 或(非短路) 至少一个为 true 就为 true,右边必执行
面试常考:&& 和 & 的区别?
· 相同:都是“与”运算
· 不同:&& 短路,& 非短路(右边一定会执行)
5.6 条件运算符(三元运算符)
语法:布尔表达式 ? 表达式1 : 表达式2
```java
int score = 60;
String result = (score >= 60) ? "及格" : "不及格";
```
六、Scanner——让程序“听”键盘输入
6.1 使用步骤
```java
// 1. 创建扫描仪
java.util.Scanner sc = new java.util.Scanner(System.in);
// 2. 使用
int a = sc.nextInt(); // 输入整数
double d = sc.nextDouble(); // 输入小数
String s = sc.next(); // 输入字符串
char c = sc.next().charAt(0); // 输入一个字符(取第一个)
```
注意:需要先 import java.util.Scanner; 放在文件最上面会更方便。
完整例子:
```java
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入年龄:");
int age = sc.nextInt();
System.out.println("你的年龄是:" + age);
}
}
```
总结:
知识点 要点
变量 数据类型 + 变量名,先声明后使用
基本类型 byte, short, int, long, float, double, char, boolean
类型转换 小→大自动,大→小强制
表达式结果类型 有 double→double,有 float→float,有 long→long,其余 int
运算符 ++/– 前后置要分清,&& 短路,`
Scanner nextInt() nextDouble() next() next().charAt(0)
这些都是Java入门的基础,一定要多敲代码,光看笔记很容易忘。下次准备写一下分支结构,欢迎关注~
如果觉得有用,点个赞再走呗~ 😊



