数据类型
1. 分类
基本类型
数值类型
整数类型
byte 占1个字节
short 占2个字节
int 占4个字节
long 占8个字节
浮点类型
float 占4个字节
double 占8个字节
字符类型
char 占2个字节
布尔类型
boolean 占1位,只有true和false。
引用类型
- 类
- 接口
- 数组
2. 默认值
- 整型默认值0
- 浮点型默认值0.0
- boolean和char需指定默认值
- String默认值为null
3. 数值表示
二进制0b
如:0b1
八进制0
如:010
十进制
如:10
十六进制0x
如:0x10
4. 特殊表示
long值后带L
如:141231L
float值后带F
如:0.12F
5. 位运算符
&
同1为1,其余为0|
同0为0,其余为1^
相同为0,不同为1!
按位取反,1变0,0变1<<
左移,数字扩大两倍>>
右移,数字缩小两倍
6. 扩展
char字符都可以强制转换为int,本质上是Unicode
int转char的时候需要数字前加\u,如:
char c3 = '\u0061'; //a
字符串与数值拼接
System.out.println(""+10+20); //1020 System.out.println(10+20+""); //30
7. 坑
7.1. 浮点数比较会出现问题
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d); //false
float d1 = 23232323232323f;
float d2 = d1 + 1;
System.out.println(d1 == d2); //true
解决方法:
使用BigDecimal类进行比较。