Java 有哪些基本数据类型

126 阅读3分钟

大家好,我是程序员艾瑞克。今天我来介绍 Java 语言中的基本数据类型。

Java 是一种面向对象的编程语言,它的基本数据类型是构建更复杂数据结构的基础。Java 中的基本数据类型可以分为两大类:原始数据类型(Primitive Types)和引用数据类型(Reference Types)。我们重点要关注的是原始数据类型。

Java 有八种原始数据类型:

1、byte

byte 是 8 位有符号整数,在内存中会占用 8 个字节,取值范围是  -2^7 到 2^7  - 1, 也就是 -128 到 127。通常用于节省空间的情况下,如在大型数组中。默认值是 0。

例子:byte x = 3;  byte y = -6;

2、short

short 是 16 位有符号整数,在内存中会占用 16 个字节,取值范围是 -2^15 到 2^15-1, 也就是 -32768 到 32767。用得较少,但在需要比 byte 更大范围但比 int 小范围的场合有用。默认值为 0。

例子:short x = 100;  short y = -200;

3、int

int 是 32 位有符号整数,在内存中会占用 32 个字节,取值范围是 -2^31 到 2^31-1。这是Java中最常用的整型,适用于大多数计算场景。默认值为 0。

例子:int a = 10000;  int b = -20000;

4、long

long 是 64 位有符号整数,在内存中会占用 64 个字节,取值范围是 -2^63 到 2^63-1。当 int 类型不足以表示大数值时使用。默认值为 0。

例子:long a = 10000L;  long b = -20000L;

5、float

float 是 32 位单精度浮点数,在内存中会占用 32 个字节。对于大多数日常用途而言,它提供了足够的精度,但在需要更高精度的科学计算中可能不够用。默认值为 0.0f。

例子:float a = 456.8f;

6、double

double 是 64 位双精度浮点数,在内存中会占用 64 个字节。它比 float 提供更高的精度,是处理小数的默认选择,特别是在科学计算和精确计算中。默认值为 0.0d。

例子:double a = 6.0;  double b = 8.0d;  double c = -9.0;

7、字符类型 char

char 有 16 位,在内存中会占用 16 个字节,用于存储单个字符。在 Java 中,char 类型使用 Unicode 编码,可以表示包括中文在内的多种语言的字符。不局限于传统的 ASCII 字符集。

例子:char a = 'A';

8、布尔类型 boolean

boolean 表示逻辑值,它只有两个可能的值:true 和 false。常用于控制程序流程的条件判断,比如循环和分支。默认值为 false。

例子:boolean a = true;

以下是一段相关代码用于练习和掌握这些基本数据类型。

public class PrimitiveTypeTest {
    public static void main(String[] args) {
        byte b = 3;        
        System.out.println(b);
        short s = 200;        
        System.out.println(s);
        int i = 1000;        
        System.out.println(i);
        long l = 1000L;        
        System.out.println(l);
        float f = 3.0f;        
        System.out.println(f);
        double d = 100.0d;        
        System.out.println(d);
        char c = 'x';        
        System.out.println(c);
        boolean flag = true;        
        System.out.println(flag);    
    }
}

运行结果如下:

图片

对于基本的数据类型,Java 语言提供了对应的封装类。可以通过以下代码获取类型的二进制位数和最大最小值。

public class PrimitiveTypeTest2 {
    public static void main(String[] args) {
        
        //byte        
        System.out.println("byte size : " + Byte.SIZE);                               System.out.println("Byte.MIN_VALUE=" + Byte.MIN_VALUE);                       System.out.println("Byte.MAX_VALUE=" + Byte.MAX_VALUE);        
        System.out.println();
        
        //short        
        System.out.println("short size : " + Short.SIZE);                             System.out.println("Short.MIN_VALUE=" + Short.MIN_VALUE);                     System.out.println("Short.MAX_VALUE=" + Short.MAX_VALUE);        
        System.out.println();
        
        //int        
        System.out.println("int size : " + Integer.SIZE);                             System.out.println("Integer.MIN_VALUE=" + Integer.MIN_VALUE);                 System.out.println("Integer.MAX_VALUE=" + Integer.MAX_VALUE);                 System.out.println();
        
        //long       
        System.out.println("long : " + Long.SIZE);                                   System.out.println("Long.MIN_VALUE=" + Long.MIN_VALUE);                       System.out.println("Long.MAX_VALUE=" + Long.MAX_VALUE);       
        System.out.println();
        
        //float        System.out.println("float : " + Float.SIZE);                   System.out.println("Float.MIN_VALUE=" + Float.MIN_VALUE);                     System.out.println("Float.MAX_VALUE=" + Float.MAX_VALUE);       
        System.out.println();
        
        //double       
        System.out.println("double : " + Double.SIZE);                               System.out.println("Double.MIN_VALUE=" + Double.MIN_VALUE);                   System.out.println("Double.MAX_VALUE=" + Double.MAX_VALUE);                   System.out.println();
        
        //char       
        System.out.println("char size : " + Character.SIZE);                         System.out.println("Character.MIN_VALUE=" + (int) Character.MIN_VALUE);        
        System.out.println("Character.MAX_VALUE=" + (int) Character.MAX_VALUE);    
        
    }
}

运行结果如下。

图片

以上就是本次的内容。接下来我会介绍 Java 的常量和变量。