变量三个要素
变量使用注意事项
+号的使用
- 当左右两边都是数值型时,则做加法运算
- 当左右两边有一方为字符串,则做拼接运算
- 运算顺序,从左到右
数据类型(重要)
整型常量默认为int,小数默认为double
声明long常量后加l和L, 声明float常量后加f和F
如果整型表示浮点,最右边自带.0
如果数值超过所表示的空间,对于浮点类型会舍弃部分小数部分
当对小数进行除法运算时,得到一个近似值
byte——计算机基本存储单元
bit——计算机的最小储存单位
1byte = 8bit
数据内存解析
科学计数法
5.12e2 = 5.12 * 10的2次方
5.12e-2 = 5.12 / 10的2次方
if(Math.abs(num11 - num12) < 0.000001){
System.out.println("差值非常小,到我们规定的精度,认为相等");
}
API中文文档网址
https://www.matools.com/api/java8
查看文档
字符类型
字符类型解压存放一个汉字
也可以存放一个数字,这个数字代表某个字符
char本质是一个整数,在输出时,是Unicode码对应的字符
char c = 97 sout=a
char类型是可以进行运算的,对应的Unicode码参与计算
Unicode网址
http://tool.chinaz.com/tools/Unicode.aspx
ASCII码
https://www.yuque.com/docs/share/2c3e8f2d-de8e-4560-aa99-417a2a7325e1?# 《ASCII码对应表》
编码表介绍
https://www.yuque.com/docs/share/0ff1892e-3b65-4f14-86c5-bce8af7c5a76?# 《编码表介绍(了解)》
编码
布尔类型
布尔只有两种值true和false,不可以用0或者非0
On April 30
数据类型转换
自动类型转换
注意细节:
- byte/short/char之间不能自动转换,可以相互计算,计算之前先转为int类型
- boolean不参与转换
- 容量大的赋值给容量小的数据类型,会报错
- 数值赋值,先判断是否在变量范围内
- 变量赋值,判断类型是否符合自动提升规则
- 混合运算时,先转换类型,然后再计算:
- 所有数据转为容量最大的类型,然后计算
- 如果全部为常量,可赋值为相应范围内的类型,byte b=1+1
- 如果有一个变量存在,整型常量为int;浮点常量为double,double d=1+1.1
- 如果全部为变量,byte/short/char会转为int,其他提升参与运算最大类型,float f =b+c+f
- 自动提升原则:计算结果的类型自动提升为操作种最大的类型(左大为左,右大为右)
强制类型转换
介绍:自动类型转换的逆过程, 将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成 精度降低或溢出,格外要注意
- 强制符号只针对离最近的操作数(数值or变量)有效,可使用()提升优先级
- byte/short/char可以保存对应范围内的常量值,不能保存int类型的变量值,可强制转换
基本数据类型和String类型转换
介绍:
基本数据类型转String
xxx为基本数据类型
Sting s = xxx +””String转基本数据类型
基本数据类型自动装箱为包装类(静态方法)
xxx x = Xxx.parseXxx(“数值”)int n1 = 100;
String s1 = n1 + "";
//
String s2 = "100";
int n2 = Integer.parseInt(s);
//字符串转char
String s3 = "100";
char c1 = s.charAt(0);
注意事项
转换过程中,如果格式不正确,会抛出异常
eg:”123”可以转为123,”hello”却转不了本章总结
小数常量相加=正确值,变量相加=近视值
float f = 2.2f; long l = 21l;