一、数据类型
1.1 float
float f1 = 0.1f;
double f2 = 1.0/10;
System.out.println(f1==f2);
float f3 = 35135435431354354f;
float f4 = f3 +1;
System.out.println(f3==f4);
原因:
- float 是有限的 且离散的 会舍入误差 结果会是一个大约数
避免浮点数进行比较
可采用BigDecimal来进行比较
1.2 char
char c1 = 'a' ;
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
char c3 = '\u0061';
System.out.println(c3);
所有的字符本质还是数字
字符会根据 编码Unicode表:(97 = a 65 =A) 来对应相应的数字
U0000 - UFFFF
1.3 转义字符
\t 制表符
\n 换行符
…
1.4 类型转换
在进行大数运算时,需要注意溢出问题,在JDK7及其以上版本时,数字可以用下划线分隔
二、字符运算
2.1 字符串链接符 +
在执行System.out.println 时"在""+右边的运算执行拼接操作,在+""左边的运算执行计算操作。
三、数组理解
栈中存储的是堆中数组数据的物理地址
而在堆中则是为数据开辟了物理空间
数组的四个特点
- 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型。
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
- 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。