什么是变量
- 定义:在程序执行的过程中,在某个范围内其值可以发生改变的量。
- 注意:变量是内存中的一个存储区域,该区域有自己名称(变量名)和类型(数据类型),Java中每个变量必须先声明,后使用,该区域的数据可以在同一类型范围内不断变化。
变量的定义和分类
- 定义变量的格式:数据类型 变量名 = 变量值
- 数据类型的分类(掌握):
(1)数据类型分类:
基本数据类型 | byte | short | int | long | float | double | boolean |
---|---|---|---|---|---|---|---|
引用数据类型 | 类class | 接口interface | 数组[] |
(2)声明的位置不同分类:
成员变量 | 实例变量(不以static修饰) | 类变量(以static修饰) | |
---|---|---|---|
局部变量 | 形参(方法签名中定义的变量) | 方法局部变量(在方法内定义) | 代码块局部变量(在代码块内定义) |
基本数据类型
- 整数类型:
(1)Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证Java程序的可移植性
(2)Java的整型变量默认为int型,声明long型常量必须后加“l”或“L”
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节=8bit | -128~127 |
short | 2字节 | − 2 15 -2^{15} −215 ~ 2 15 − 1 2^{15}-1 215−1 |
int | 4字节 | − 2 31 -2^{31} −231~ 2 31 − 1 2^{31}-1 231−1 |
long | 8字节 | − 2 63 -2^{63} −263~ 2 63 − 1 2^{63}-1 263−1 |
-
浮点类型:
(1)与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体OS影响
(2)Java的浮点型常量默认为double,声明float型常量,必须后加F或fA.十进制数形式,如:5.12,512.0f,512
B.科学计数法形式:5.12e2,512E2,100E-2
类型 | 占用存储空间 | 表数范围 |
---|---|---|
单精度float | 4字节 | -3.403E38~3.403E38 |
双精度double | 8字节 | -1.798E308~1.798E308 |
- 字符类型char:
(1)char型数据用来表示通常意义上“字符”(2字节)
(2)
A.字符常量是用单引号(’ ‘)括起来的单个字符,涵盖世界上所有书面语的字符。例如:char c1 = ‘a’;char c2 = ‘中’;char c3 = ‘9’;
B.Java中还允许使用转义字符’‘来将其后的字符转变为特殊字符型常量。例如:char c3 =‘n’;// \n 表示换行字符
C.直接使用Unicode值来表示字符型常量:’\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u0041表示A
注意:char类型是可以进行运算的。因为它都对应有Unicode
- 布尔类型:boolean
(1)boolean类型适于逻辑运算,一般用于程序流程控制,if条件控制语句,while循环控制语句,do-while循环控制语句,for循环控制语句
(2)boolean类型数据只允许取值true和false,不可以0或非0的整数替代false和true,这点和C语言不同。 - 不可以把null赋值给基本数据类型变量
基本数据类型转换
-
自动类型转换
(1)定义:容量小的类型自动转换为容量大的数据类型称为自动类型转换
(2)有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
byte,short,char之间不会相互转换,他们三者在计算时首先转换int类型
当把任何基本数据类型的值和字符串进行连接运算时(+),基本数据类型将自动转化为字符串类型(基本数据类型转换成字符串)
-
强制类型转换
(1)自动类型转换的逆过程,将容量大的数据类型转换成容量小的数据类型,使用时要加上强制转换符(0),但可能造成精度降低或溢出,格外注意。
(2)通常,字符串不能直接转换成基本数据类型,但通过基本数据类型对应的包装类则可以实现把字符串转换成基本数据类型
(3)boolean类型不可以转换成其他的数据类型