Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java APIs 和框架

Java 类引用

Java 有用资源

Java - 数据类型



Java 数据类型定义了不同类型变量、常量、方法参数、返回类型等的数据类型和值范围。数据类型告诉编译器要存储的数据类型和所需的内存。为了存储和操作不同类型的数据,所有变量都必须具有指定的数据类型。

根据变量的数据类型,操作系统分配内存并决定可以在保留的内存中存储什么。因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数、小数或字符。

Java 数据类型分为两大类:

  • 基本数据类型
  • 引用/对象数据类型

Java 基本数据类型

基本数据类型由语言预定义,并由关键字命名。Java 支持八种基本数据类型。以下是基本数据类型的列表:

byte 数据类型

byte 数据类型是 8 位有符号二进制补码整数,最小值为 -128 (-27),最大值为 127(包含)(27 -1)。

byte 变量的默认值为 0,用于节省大型数组中的空间,这对于整数来说尤其有利,因为 byte 的大小是整数的四分之一。

示例

byte a = 100;
byte b = -50;

short 数据类型

short 数据类型是 16 位有符号二进制补码整数,其值范围为 -32,768 (-215) 到 32,767(包含)(215 -1)。与 byte 数据类型一样,short 数据类型也有利于节省内存,因为它比整数占用更少的空间,只有整数的一半大小。

short 变量的默认值为 0。

示例

short s = 10000;
short r = -20000;

int 数据类型

int 数据类型是 32 位有符号二进制补码整数,其值范围为 -2,147,483,648 (-231) 到 2,147,483,647(包含)(231 -1)。除非考虑内存问题,否则整数通常用作整数值的默认数据类型。

int 变量的默认值为 0。

示例

int a = 100000;
int b = -200000;

long 数据类型

long 数据类型是 64 位有符号二进制补码整数,其值范围为 -9,223,372,036,854,775,808 (-263) 到 9,223,372,036,854,775,807(包含)(263 -1)。当需要比 int 更宽的范围时使用此数据类型,其默认值为 0L。

示例

long a = 100000L;
long b = -200000L;

float 数据类型

float 数据类型是单精度 32 位 IEEE 754 浮点表示。它在大型浮点数数组中特别有用,可以节省内存。其默认值为 0.0f。但是,需要注意的是,由于浮点运算中的舍入误差,float 数据类型不适合用于精确值,例如货币。

示例

float f1 = 234.5f;

double 数据类型

double 数据类型是双精度 64 位 IEEE 754 浮点表示,通常用作十进制值的默认数据类型,通常是默认选择。double 数据类型不应用于精确值,例如货币,其默认值为 0.0d。

示例

double d1 = 123.4;

boolean 数据类型

boolean 数据类型表示单个位的信息,可以保存两种可能的值之一:true 或 false。此数据类型用于跟踪真/假条件的简单标志,其默认值为 false

示例

boolean one = true;

char 数据类型

char 数据类型是单个 16 位 Unicode 字符,它表示来自不同语言和符号的各种字符。范围为 '\u0000'(或 0)到 '\uffff'(或 65,535 包含)。此数据类型主要用于存储单个字符。

示例

char letterA = 'A'

基本数据类型的示例

以下示例显示了我们上面讨论的各种基本数据类型的用法。我们在数值数据类型上使用了加法运算,而 boolean 和 char 变量则按原样打印。

public class JavaTester {
   public static void main(String args[]) {

      byte byteValue1 = 2;
      byte byteValue2 = 4;
      byte byteResult = (byte)(byteValue1 + byteValue2);

      System.out.println("Byte: " + byteResult);

      short shortValue1 = 2;
      short shortValue2 = 4;
      short shortResult = (short)(shortValue1 + shortValue2);

      System.out.println("Short: " + shortResult);

      int intValue1 = 2;
      int intValue2 = 4;
      int intResult = intValue1 + intValue2;

      System.out.println("Int: " + intResult);

      long longValue1 = 2L;
      long longValue2 = 4L;
      long longResult = longValue1 + longValue2;

      System.out.println("Long: " + longResult);

      float floatValue1 = 2.0f;
      float floatValue2 = 4.0f;
      float floatResult = floatValue1 + floatValue2;

      System.out.println("Float: " + floatResult);

      double doubleValue1 = 2.0;
      double doubleValue2 = 4.0;
      double doubleResult = doubleValue1 + doubleValue2;

      System.out.println("Double: " + doubleResult);

      boolean booleanValue = true;

      System.out.println("Boolean: " + booleanValue);

      char charValue = 'A';

      System.out.println("Char: " + charValue);     
   }
}

输出

Byte: 6
Short: 6
Int: 6
Long: 6
Float: 6.0
Double: 6.0
Boolean: true
Char: A

Java 非基本(引用/对象)数据类型

非基本数据类型不是预定义的。引用数据类型是使用构造函数创建的。它们用于访问对象。这些变量声明为特定类型,不能更改。例如,Employee、Puppy 等。

以下是非基本(引用/对象)数据类型:

  • 字符串 (String):字符串是Java中的一个类,它表示字符序列。
  • 数组 (Arrays):数组是利用基本数据类型创建的,用于存储多个相同类型的值。
  • 类 (Classes):类是用户自定义的数据类型,由变量和方法组成。
  • 接口 (Interfaces):接口是抽象类型,用于指定一组方法。

任何引用变量的默认值都是 null。引用变量可以用来引用声明类型或任何兼容类型的任何对象。

示例

下面的例子演示了引用(或对象)数据类型。

// Creating an object of 'Animal' class
Animal animal = new Animal("giraffe");

// Creating an object of 'String' class
String myString = new String("Hello, World!");
广告