1-Java数据类型
Java 是强类型语言,所有变量必须先声明数据类型才能使用。数据类型分为基本数据类型和引用数据类型两大类。
1.1 数据类型分类
Java 数据类型一共两大类:
- 基本数据类型(8 个)
- 引用数据类型(除 8 种基本类型外都是)
1.2 基本数据类型(8 种)
1.2.1 四类八种一览表
| 类型分类 | 关键字 | 字节数 | 取值范围(简要) | 默认值 |
|---|---|---|---|---|
| 整型 | byte | 1 | -128 ~ 127 | 0 |
| short | 2 | -32768 ~ 32767 | 0 | |
| int | 4 | ±21 亿左右 | 0 | |
| long | 8 | 极大整数 | 0L | |
| 浮点型 | float | 4 | 单精度小数 | 0.0f |
| double | 8 | 双精度小数 | 0.0d | |
| 字符型 | char | 2 | 0 ~ 65535 | '\u0000' |
| 布尔型 | boolean | 1 | true / false | false |
1.3 整型详细说明
1.3.1 byte
- 占 1 字节 = 8 bit
- 范围:
-128 ~ 127 - 用于:网络传输、文件 IO、节省内存
byte b = 100; // 合法
byte b2 = 128; // 报错,超出范围
1.3.2 short
- 占 2 字节
- 范围:
-32768 ~ 32767 - 很少用
1.3.3 int(最常用)
- 占 4 字节
- Java 中整数默认类型就是 int
- 写代码 90% 整数都用 int
int age = 20;
int a = 2100000000;
1.3.4 long
- 占 8 字节
- 赋值必须加 L 或 l,推荐大写 L
long l1 = 100; // 可以,但不标准
long l2 = 100L; // 标准写法
long time = 1620000000000L;
1.4 浮点型(小数)
1.4.1 float
- 占 4 字节
- 赋值必须加 f/F
float f = 3.14f;
1.4.2 double(最常用)
- 占 8 字节
- Java 中小数默认类型就是 double
double pi = 3.1415926;
1.5 字符类型 char
- 占 2 字节
- 用 单引号,只能存一个字符
- 可以存中文、字母、数字、符号
char c1 = 'A';
char c2 = '中';
char c3 = '9';
char c4 = '@';
底层本质是数字:
- 'A' → 65
- 'a' → 97
- '0' → 48
1.6 布尔类型 boolean
- 只有两个值:
true/false - 不能用 0 / 1 代替
boolean flag = true;
if(flag) {
// 执行
}
1.7 引用数据类型
除 8 种基本类型外,全是引用类型:
- 类:String、Student、自定义类
- 接口
- 数组
String name = "张三";
int[] arr = {1,2,3};
1.8 数据类型转换
1.8.1 自动类型转换(隐式)
小 → 大,自动转,不丢精度
byte → short → int → long → float → double
int a = 10;
double b = a; // 自动转
1.8.2 强制类型转换(显式)
大 → 小,必须强转,可能丢精度/溢出
语法:
(目标类型) 变量
示例:
double pi = 3.99;
int i = (int) pi; // 3,小数直接砍掉
int a = 128;
byte b = (byte)a; // -128,溢出
1.9 常见易错点
- 整数默认 int,long 必须加 L
- 小数默认 double,float 必须加 f
- char 用单引号,String 用双引号
- boolean 不能和数字互转
- 强转可能溢出、丢精度