- 概念:变量是临时存储数据的容器,该容器的值可变
- 本质是内存中一块空间
- 作用:是用来存储数据的
- 特点:数据可变
- 变量的三要素
- 数据类型: 用于约束变量所存储的数据种类和数值范围
- 变量名: 用于获取变量中的存储数据
- 变量的值:变量中存储的值
- 变量的声明和使用
- 先声明变量,再为变量赋值
//1.声明一个整数类型的变量,变量名称是a int a; //2. 在变量a中存入一个数10 // 初始化: 第一次给变量赋值 a = 10; |
- 声明变量的同时进行赋值, 声明变量的同时进行初始化
//声明的同时并赋值 int c = 50; |
- 同时声明多个相同类型的变量
//同时声明多个相同类型的变量 int x,y,z; x = 3; y = 8; z = 9; //同时声明多个相同类型的变量并赋值 int k = 20, m = 10, n = 15; |
- 需要注意的问题
- 变量必须先声明,再使用,
- 变量必须先赋值,再使用
- 变量不能超过所定义数据类型的范围
数据类型
- 数据类型的分类
- 基本数据类型
- 特点:可以字面量赋值
- 八个基本数据类型
数据类型 | 关键字 | 所占字节 | 所占bit位 | 数值范围 | 举例 |
字节类型 | byte | 1字节 | 8位 | -128 ~127 -27~27-1 | byte b = 127; |
短整型 | short | 2字节 | 16位 | -32768~32767 -215~215-1 | short s = 305; |
整型 | int | 4字节 | 32位 | -231~231-1 -21亿多~21亿多 | int a = 128; int b = -2100000; |
长整型 | long | 8字节 | 64位 | 很大很大 | long l = 129l long i = 129L |
单精度浮点型 | float | 4字节 | 32位 | float f = 3.14f float f = 3.14F | |
双精度浮点型 | double | 8字节 | 64位 | 很大很大 | double d = 3.14; |
布尔类型 | boolean | 1字节 | 8位 | boolean flag = true; boolean flag = false | boolean flag = true; boolean flag = false |
字符类型 | char | 2字节 | 16位 | 整数:0~65535 Unicode编码:'\u0000'~'\uFFFF' | char a = 'a'; |
- char类型有几个特殊的字符
- char a = 97 a
- char a = 65 A
- char a
数据类型之间的转换
- 自动类型转换:小类型转换为大类型
- 强制类型转换:大类型转换成小类型
- 语法:(要转换的数据类型)变量
- 注意:强制类型转换可能发生溢出或者精度丢失
double d = 3.14; int i = (int) d; System.out.println(i); //3 精度丢失 long ll = 100L; byte age = (byte)ll; System.out.println(age); int i = 18; //byte age = i; //编译不通过,大类型转小类型不能直接转换 byte age = (byte)i; System.out.println("age="+age); int j = 128; byte b = (byte)j; System.out.println("b="+b); // -128 |
- 两点规则
- 整数直接量可以直接赋值给byte(-128~127) short(-三万多~三万多) int char(0~65535) ,但是不能超出范围
- byte,short char 数据类型参与运算时,系统一律将其转换成int类型