您的位置:

Java基础类型

Java是一种静态类型语言,其数据类型在编译时就确定,而非在运行时动态确定。数据类型是Java语言重要的基础,它决定了所能够存储的数据种类和范围。Java基础类型包括八种原始类型和引用类型。

一、八种原始类型

Java提供了八种基本数据类型,其中有四种整型、两种浮点数类型、一种用于表示Unicode编码的字符单元的字符型,以及一种用于表示真值的布尔型。

1、整数类型

Java提供了四种整数类型,分别是byte、short、int和long。其所占字节数分别为1、2、4和8个字节。这些类型都有其各自的范围,在不同的情况下选择不同的类型可以使程序更加高效。

byte类型

byte类型是最小的整数类型,它占用1个字节,其取值范围是-128到127。我们可以使用byte类型来节省内存,比如在网络传输、文件存储等需要限制数据大小的场合。

    byte b = 127;
    System.out.println(b); // 127
short类型

short类型是比byte类型更大的整数类型,它占用2个字节,其取值范围是-32768到32767。我们也可以使用short类型来节省内存。

    short s = 32767;
    System.out.println(s); // 32767
int类型

int类型是Java中使用最广泛的整数类型,它占用4个字节,其取值范围是-2147483648到2147483647。

    int i = 2147483647;
    System.out.println(i); // 2147483647
long类型

long类型是比int类型更大的整数类型,它占用8个字节,其取值范围是-9223372036854775808到9223372036854775807。在需要存储很大的整数时,我们可以使用long类型。

    long l = 9223372036854775807L;
    System.out.println(l); // 9223372036854775807

2、浮点数类型

Java提供了两种浮点数类型,float和double。在计算机内部,浮点数采用二进制科学计数法表示,可以表示非常大或非常小的数字,但却没有精确的表示方式。

float类型

float类型是单精度浮点数类型,它占用4个字节。其有效位数为大约6~7位,可以表示的值的范围为3.4e-45到3.4e+38。

    float f = 3.14f;
    System.out.println(f); // 3.14
double类型

double类型是双精度浮点数类型,它占用8个字节,比float类型精度更高。其有效位数为大约15位,可以表示的值的范围为4.9e-324到1.8e+308。

    double d = 2.718281828459045;
    System.out.println(d); // 2.718281828459045

3、字符类型

char类型是Java中用来表示Unicode编码的字符的类型,它占用2个字节,可以表示65535个字符。Java中使用单引号表示字符。

    char c = 'a';
    System.out.println(c); // a

4、布尔类型

boolean类型是Java中用来表示布尔值的类型,它只有两个值:true和false。

    boolean b = true;
    System.out.println(b); // true

二、自动类型转换和强制类型转换

在Java中,八种基本数据类型之间可以进行自动类型转换。当一个低精度类型的值被赋值给一个高精度类型的变量时,Java会自动进行类型转换。反过来,将一个高精度类型的值赋值给一个低精度类型的变量时,需要使用强制类型转换。

1、自动类型转换

自动类型转换是指Java自动将一个低精度类型的值转换为高精度类型的值。当Java需要将一个较小的类型参数传递给一个较大的参数时,Java会自动将小类型转换为大类型。

    int i = 10;
    double d = i;
    System.out.println(d); // 10.0

2、强制类型转换

强制类型转换是指将一个高精度类型的值强制转换为低精度类型的值。在Java中,当需要将一个大的类型转换为一个更小的类型时,可以使用强制类型转换。需要注意的是,强制类型转换可能会造成精度的损失。

    double d = 3.14;
    int i = (int)d;
    System.out.println(i); // 3

三、参考文献

1、《Java核心技术 卷I》

2、Java官网 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html