Java
数据类型

image
**byte: **内存中占用一个字节八位。表示范围-128~127
**short: **内存中占用二个字节16位。表示范围-32768~32767
**int: **内存中占用4个字节32位。
**long: **内存中占用8个字节64位。
long a7 = 11111111111; 会报错
long a7 = 11111111111L; 正确
要加上L。
Java中对极大的数的计算是通过BigDecimal类来计算的。
进制
int a = 10; (十进制)
int b = 010; (八进制) 8
int c = 0x10; (16进制) 16
进制转换
int a = 10;
System.out.println(Integer.toBinaryString(a)); 1010 转为二进制
System.out.println(Integer.toOctalString(a)); 12 转为八进制
System.out.print(Integer.toHexString(a)); a 转为16进制
浮点数
float: 内存占4位32个字节
Double:内存占8位64个字节
浮点数的默认类型是double型。
double d = 3.14; //默认类型是double型
float f = 3.14; // 从double转换为float可能会有损失。
浮点数存在误差,很多数字不能精确表示,建议使用BigDecimal类。
BigDecimal大的小数
BigInteger大的整数
最好避免在比较中使用浮点数
字符
char: 采用的是Unicode编码格式,占2个字节。
char c1 = '吴'; // 注意是单引号,双引号的是字符串
char的范围是0~65536,运算是当做整数来进行的。
Java里面的字符串,是定义成String类了。
boolean类型
boolean类型在内存中占1位,而不是1个字节。
自动类型转换
容量小的数据类型可以自动转换为容量大的数据类型。
JDK 7.0 新特性
int a = 0b00000000000000000000000000000011; // 二进制的3
int b = 0b0000_0000_0000_0000_0000_0000_0000_0011; // 二进制的3,下划线不影响
int c = 123123131;
int d = 1_2312_3131;