Java 数据类型

Java 是静态类型的编程语言,这意味着所有变量在使用之前必须先声明。这涉及到变量声明的类型以及变量名称,像下面这样:

int age = 1;

这个例子意思为,新建一个名字为 age 的变量,它的数据类型为 int,这意味着它只能存储对应的数字信息,并赋予了初始值 1 。

变量的数据类型决定它可以包含的值,以及可以对其执行的操作。除了 int 之外,Java 编程语言还支持其他七种原始数据类型。原始类型由 Java 语言预先定义,并作为关键字进行保留。

Java 中的数据类型

基本数据类型

Java 编程语言支持八种原始数据类型。

数据类型 大小 描述
byte 1 byte 存储范围为-128到127的整数
short 2 byte 存储范围为-32,768到32,767的整数
int 4 byte 存储范围为-2,147,483,648到2,147,483,647的整数
long 8 byte 存储范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807的整数
float 4 byte 32 位单精度浮点数,取值范围为 1.4E-45 到 3.4028235E38。
double 8 byte 64 位双精度浮点数,取值范围为 4.9E-324 到 1.7976931348623157E308。
boolean 1 bit true/false
char 2 byte 16 位 Unicode 字符,取值范围为 '\u0000' 到 '\uffff'。

几种数据类型创建示例:

boolean result = true;
char capitalC = 'C';
byte b = 100;
short s = 10000;
int i = 100000;

整数类型初始化时,可以使用特殊的前缀指定数字进制。

// 10 进制的 26
int decVal = 26;
// 16 进制的 26
int hexVal = 0x1a;
// 2 进制的 26
int binVal = 0b11010;

对于整数和小数类型,从 JDK 7 开始,可以通过下划线提高数字值的可阅读性。

long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi =  3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;

默认值

几种基本类型都有它的默认值,下面是对照表。

数据类型 默认值(对于字段)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
boolean false

这些原始数据类型是 Java 编程语言的基础,可以用于声明变量、方法参数和返回值等。Java 中的数据类型是非常重要的概念,掌握好数据类型的特点和用法,可以帮助我们更好地理解和使用 Java 语言。

String

除了上面列出的八种基本数据类型之外,Java 编程语言还通过 java.lang.String类提供了对字符串的特殊支持。将字符串括在双引号内将自动创建一个新String对象;例如,String s = "this is a string";

String对象是不可变的,这意味着一旦创建,它们的值就无法更改。类String在技术上不是原始数据类型,但 Java 语言有对它的特殊支持。

String的更多内容可以在 简单数据对象中学习。

引用数据类型

引用数据类型包括类、接口、数组等,它们是通过 new 关键字在堆中创建对象,变量存储的是对象的引用。

Java 中的引用数据类型可以分为以下几类:

  1. :类是 Java 中最基本的引用数据类型,用于定义对象的属性和方法。类可以继承其他类,也可以实现一个或多个接口。
public class Hello{}
  1. 接口:接口是一种特殊的类,只包含常量和抽象方法。接口可以被其他类实现,实现接口的类必须实现接口中定义的所有方法。
public interface IPerson {}
  1. 数组:数组是一种引用数据类型,用于存储同一类型的多个元素。数组可以是一维的,也可以是多维的。
byte[] value = {}
  1. 枚举:枚举是一种特殊的类,用于定义一组常量。枚举常量是唯一的,可以通过枚举类型访问。

  2. 注解:注解是一种特殊的类,用于为程序元素(类、方法、变量等)添加元数据。注解可以在编译时和运行时被读取,并且可以通过反射机制获取注解信息。

  3. 泛型:泛型是一种特殊的类,用于定义类型参数。泛型可以在编译时检查类型安全性,并且可以减少代码重复。

在 Java 中,引用数据类型的变量存储的是对象的引用,而不是对象本身。因此,引用数据类型的变量可以指向 null,表示该变量没有引用任何内容。

参考资料: