一.常量
1.概述
在代码的运行过程中,值不会发生改变的数据。
2.分类
a.整数常量 ---- 所有整数
b.小数常量 ----- 所有带小数点的
c.字符常量 --- 带单引号的(单引号中必须有且只有一个内容)
d.字符串常量 --- 带双引号的
e.布尔常量 --- true(真) false(假)
f.空常量 --- NULL 代表数据不存在,不能直接使用
二.变量
1.概述
在代码的运行过程中,会随着不同情况发生改变的数据
2.定义格式
a.数据类型 变量名 = 值;
b.数据类型 变量名;
变量名 = 值;
3.数据类型分类
a.基本类型
整型 -- byte short int long
浮点型 -- float double
布尔型 -- boolean
字符型 -- char
b.引用类型
类 数组 接口 枚举 注解
4.注意事项
a.整数默认类型为int
b.小数默认类型为double
c.字符串不属于基本数据类型,属于引用数据类型用String表示,String是一个类,只不过是用的时候,定义可以按照基本类型的格式定义
d.变量不初始化不能直接使用
e.同一个作用域中的变量不能重名
f.不同作用域中的变量不用随意的互相访问 -- 在小作用域中不能使用大作用域中的变量
三.数据类型转换
1.什么时候发生
a.当等号左右两边类型不一致
b.小类型和大类型做运算
2.分类
自动类型转换
a.将取值范围小的数据类型,赋值给取值类型大的数据类型
b.取值范围小的数据类型和取值范围大的数据类型做运算
强制类型转换
a.取值类型笑得数据类型 变量名 = 取值范围大的数据类型 -> 需要强转
b.取值范围小的数据类型 变量名 = (取值范围小的数据类型)取值范围大的数据类型
3.强转注意事项***
a.不要随意强转,否则会出现精度损失和数据溢出现象
b.byte和short如果等号右边是常量,只要不超出范围,不用我们自己转,jvm帮我们强转了
c.byte和short如果等号右边是变量参与运算,结果在赋值给byte和short,需要我们自己手动强转
d.char类型做运算,会自动提升为int型,回去ASCII码表中去找字符对应的int值,ASCII码中如果没有,会去unicode编码中寻找