Java数据类型

3 阅读2分钟

1-Java数据类型

Java 是强类型语言,所有变量必须先声明数据类型才能使用。数据类型分为基本数据类型引用数据类型两大类。

1.1 数据类型分类

Java 数据类型一共两大类:

  1. 基本数据类型(8 个)
  2. 引用数据类型(除 8 种基本类型外都是)

1.2 基本数据类型(8 种)

1.2.1 四类八种一览表

类型分类关键字字节数取值范围(简要)默认值
整型byte1-128 ~ 1270
short2-32768 ~ 327670
int4±21 亿左右0
long8极大整数0L
浮点型float4单精度小数0.0f
double8双精度小数0.0d
字符型char20 ~ 65535'\u0000'
布尔型boolean1true / falsefalse

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 自动类型转换(隐式)

小 → 大,自动转,不丢精度

byteshortintlongfloatdouble
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 常见易错点

  1. 整数默认 int,long 必须加 L
  2. 小数默认 double,float 必须加 f
  3. char 用单引号,String 用双引号
  4. boolean 不能和数字互转
  5. 强转可能溢出、丢精度