以下导图均为图片格式,可单独打开放大查看。









| 大类 | 数据类型 | 存储大小 | 取值 | 示例 |
|---|---|---|---|---|
| 逻辑型 | boolean | 2 个字节 | true/false | false |
| 文本型 | char | 2 个字节/字符 | 字符集 | "沐之杰" |
| 整数型 | byte | 8 位 | -128~127 | 100 |
| 整数型 | short | 16 位 | -32768~32767 | 0 |
| 整数型 | int | 32 位 | -231-1~231 (21 亿) | 0 |
| 整数型 | long | 64 位 | -9223372036854775808~9223372036854775807(19 位) | 0L |
| 浮点型 | float | 32 位 | 后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数 | 0.0F |
| 浮点型 | double | 64 位 | 后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾数 | 0.0D |











| String | StringBuffer | StringBuilder |
|---|---|---|
| String 的值是不可变的,这就导致每次对 String 的操作都会生成新的 String 对象,不仅效率低下,而且浪费大量优先的内存空间 | StringBuffer 是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个 StringBuffer 对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量 | 可变类,速度更快 |
| 不可变 | 可变 | 可变 |
| 线程安全 | 线程不安全 | |
| 多线程操作字符串 | 单线程操作字符串 |











