1.变量 的细节:
①类型不同则占用空间不同 ;
②变量的使用顺序:先声明再赋值使用;
③变量的数据值在该数据类型范围内不断变化;
④变量在同一个作用域内不重名;
2.数据类型
3.整数类型
①整数类型默认int型,long型常量需在结尾加 ’l' / 'L'
②bit:最小存储单元 1byte=8bit;
4.浮点类型
① 单精度 float 4字节 双精度 double 8字节
②浮点数在计算机内存放形式: 符号位+指数位+ 尾数位
尾数部分可能丢失,保存的小数都是近似值
例如: 8.1/3 用变量保存是,取的是近似值 ;和2.7不相等
③细节: 浮点类型默认double ,float常量结尾加‘f' / ’F‘
对运算结果是小数的进行相等判断,应该去差值的绝对值,在某个精度范围内判断
If(Math.abs(num1-num2)<1e-6) //类似
5.字符型(char)
细节:
1)字符常量是单引号括起来的单个字符
2)转义字符是特殊的字符型常量
3)char 本质是一个整数,
编码表:①ASCII: 一个字节表示,一共128个字符
②Unicode: 两个字符表示字母和汉字 //浪费空间,表示齐全
③ utf-8:大小可变 字母1个,汉字3个 //表示范围较广
④gdk :字母1,汉字2,//范围较广
6.布尔类型:Boolean
①只有true和false,无null / 0 ;只占一个字节
②适于逻辑运算 :if ;while ;do while ; for
7.自动类型转换:
java在进行赋值和运算时,精度小的会自动转换成精度大的数据类型
char ->int ->long->float->double
Byte->short->int ->long->float->double
具体数值赋值,看数值范围;变量赋值,看变量类型
规则
1)有多种数据类型运算,自动将所有转成容量最大的类型,
2)表达式结果自动提升为操作数中的最大类型。
3)byte short 和char 之间不进行自动转换
4)byte short char 之间运算时,会首先转成int ;byte与自己运算也是int型
5)Boolean不参与运算
8.强制数据类型转换 //会造成精度降低
1)大->小 强制类型转换 ,且转换符号对最近的数据具有优先级
2)char可以保存int常量,不能保存变量