本篇记录八个基础数据类型,引用数据类型后续安排。
类型总览 flowchart LR
A[数据类型] --> B[基础数据类型]
B --> F[数值]
B --> D[字符 char]
B --> E[布尔 boolean]
F --> J[整数类型]
F --> K[浮点数类型]
J --> byte
J --> short
J --> int
J --> long
K --> float
K --> double
A --> C[引用数据类型]
C --> G[类 class]
C --> H[接口 interface]
C --> I[数组 array]
整数类型
类型
占用存储空间
表示范围
byte
1字节
2-7 ~ 27 - 1 (-128 ~ 127)
short
2字节
2-15 ~ 215 - 1 (-32768 ~ 32767)
int
4字节
2-31 ~ 231 - 1
long
8字节
2-64 ~ 264 - 1
引用数据类型占据四个字节(指向对象的地址)
一个字节byte对应八个比特位bit
整型常量默认类型是int,所以直接使用大于 2147483647 的数字会报错
数字后边加L表示long类型的数字,如3000000000L
整型类型的四种表示形式
十六进制整数,以0x开头 十进制整数 八进制整数,以0开头 二进制整数,以0b或者0B开头
浮点数类型
类型
占用存储空间
表示范围
单精度浮点数 float
4字节
-3.403E38 ~ 3.403E38
双精度浮点数
8字节
-1.798E308 ~ 1.798E308
float 尾数可以精确到七位有效数字
double 精度约为 float 到两倍,绝大多数场景都采用 double 类型
浮点数不精确,用来比较会有误差,高精度场景使用BigDecimal进行运算和比较
浮点常量默认类型是double
小数后边加F / f 表示float类型的浮点数,如0.3F
浮点类型的两种表示形式
十进制计数法 -> 3.14 科学计数法 -> 3.14e10 3.14E-9 3.14E10
字符类型
java中char用来表示在unicode编码表中的字符
一个char变量/常量只能表示一个字符
String 是内置类,不是基础数据类型
单引号抱起来表示char, 双引号包起来表示String
布尔类型
代码示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public class TestVars { public static void main (String[] args) { int a = 100 ; int b = 0100 ; int c = 0b100 ; int d = 0x100 ; System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); long e = 3000000000L ; System.out.println(e); byte f = 127 ; short h = 32767 ; System.out.println(f); System.out.println(h); double d1 = 3.14 ; double d2 = 3.14e1 ; double d3 = 31.4 / 10 ; float f1 = 3.14f ; System.out.println(d2); System.out.println(d1 == f1); System.out.println(d1 == d3); boolean b1 = true ; boolean b2 = false ; } }