基本类型(Primitive Types)
- 基本类型是由Java语言直接提供的,它们不是对象,而是直接的数值或字符。基本类型的数据存储在栈内存中,访问速度较快。Java中有8种基本数据类型,分别是:
整型(Integer Types)
- byte:1字节,取值范围-128到127。
- short:2字节,取值范围-32,768到32,767。
- int:4字节,取值范围-2,147,483,648到2,147,483,647。这是最常用的整数类型。
- long:8字节,取值范围-9,223,372,036,854,775,808到9,223,372,036,854,775,807。声明时需要加
L
或l
后缀(建议使用大写L
以避免与数字1混淆)。 - char:虽然通常用于存储字符,但本质上是一个无符号的16位整数,取值范围0到65,535。
浮点型(Floating-Point Types)
-
float**:4字节,用于表示单精度浮点数。声明时需要加
F
或f
后缀。 -
double:8字节,用于表示双精度浮点数。这是默认的浮点类型,也是大多数浮点计算的推荐类型。
布尔类型(Boolean Type)
- boolean:1字节(但实际上可能不是以字节为单位存储),只有两个值
true
和false
。
引用类型(Reference Types)
- 引用类型不是直接存储数据值,而是存储数据的引用(即内存地址)。引用类型的数据存储在堆内存中,访问速度相对较慢。Java中的引用类型主要有以下几种:
类(Class Types)
- 类是Java程序的基本构建块,用于定义对象的结构和行为。类的实例(即对象)是引用类型。
接口(Interface Types)
- 接口是一种特殊的类,它完全由抽象方法和常量组成。接口不能实例化,但可以作为引用类型来引用实现了该接口的类的对象。
数组
- 数组是一种用于存储固定大小的同类型元素的集合。数组是引用类型,数组变量实际上存储的是数组的引用(即数组在堆内存中的地址)。
枚举(Enum Types)
- 枚举是一种特殊的类,用于表示一组常量。枚举的实例是引用类型。
注解(Annotation Types)
- 注解是一种应用于类、方法、参数、变量、构造器和包等元素的特殊接口,用于为它们提供元数据。注解的实例在运行时可以通过反射机制来访问,但它们本身并不直接作为引用类型在代码中显式使用。
特殊类型
- void:虽然
void
通常用作方法的返回类型,表示该方法不返回任何值,但Java中确实存在Void
类,它是void
关键字的包装类。不过,Void
类本身是一个不可实例化的占位符类,主要用于反射等高级功能。
类型转换
-
在Java中,基本数据类型之间可以进行类型转换,包括自动类型转换(隐式转换)和强制类型转换(显式转换)。自动类型转换发生在从低级类型向高级类型转换时(如
int
转long
),而强制类型转换则需要显式指定目标类型(如将double
强制转换为int
)。 -
综上所述,Java的数据类型体系丰富且灵活,能够满足各种编程需求。
-
short number = number a
-
byte = number 4