Java基本数据类型

Java基本数据类型

经验文章nimo972025-05-26 0:18:345A+A-

编者按

数据类型是语言的基础,任何语言都离不开内置数据类型;Java内置数据类型有八种,内置数据类型之间可以进行转换。同学们不要着急,赶紧坐好,开始今天的Java自学之旅:第4讲 Java基本数据类型!

内容提要

无论何种计算机编程语言,内置基本数据类型是最基本、最为核心的内容。Java语言是一种强类型语言,强的表现就在无论任何变量都需要有对应的数据类型。

本讲我们将重点讲解以下内容:

  • 内置数据类型
  • 内置数据类型强制转换

内容数据类型

八种内置数据类型

如表所示,Java提供了八种内置的数据类型,其中,四种整数类型,两种浮点数类型,一种字符类型,一种布尔类型。

类型

默认值

位数

最小值

最大值

byte

0

8位

-128

127

short

0

16位

-32768

32767

int

0

32位

-2147483648

2147483647

long

0L

64位

-9223372036854775808L

9223372036854775807L

float

0.0f

32位

-1.4E-45

3.4028235E+38

double

0.0d

64位

-4.9E-234

1.79769313486231570e+308

boolean

false

8位

不涉及

不涉及

char

0

16位

\u0000(十进制整数0)

\uffff(十进制整数65535)

boolean只有两种取值,true和false。其中,true表示逻辑为真,false表示逻辑假。整数和浮点数类型的取值范围太大,难以记住,如何是好?大家不用强行记忆,Java语言提供便于人类记忆的方式:

  • MIN_VALUE表示数据类型的最小值
  • MAX_VALUE表示数据类型的最大值

我们来看一段具体代码:

public class Main {
    public static void main(String[] args) {
        // 打印byte的默认值、最小值与最大值
        byte by = 0;
        System.out.println("byte default value:" + by);
        System.out.println("byte min value:" + Byte.MIN_VALUE);
        System.out.println("byte max value:" + Byte.MAX_VALUE);

        // 打印short的默认值、最小值与最大值
        short sh = 0;
        System.out.println("short default value:" + sh);
        System.out.println("short min value:" + Short.MIN_VALUE);
        System.out.println("short max value:" + Short.MAX_VALUE);

        // 打印int的默认值、最小值与最大值
        int in = 0;
        System.out.println("int default value:" + in);
        System.out.println("int min value:" + Integer.MIN_VALUE);
        System.out.println("int max value:" + Integer.MAX_VALUE);

        // 打印long的默认值、最小值与最大值
        long lo = 0L;
        System.out.println("long default value:" + lo);
        System.out.println("long min value:" + Long.MIN_VALUE);
        System.out.println("long max value:" + Long.MAX_VALUE);

        // 打印float的默认值、最小值与最大值
        float fl = 0.0f;
        System.out.println("float default value:" + fl);
        System.out.println("float min value:" + Float.MIN_VALUE);
        System.out.println("float max value:" + Float.MAX_VALUE);

        // 打印double的默认值、最小值与最大值
        double d = 0.0d;
        System.out.println("double default value:" + d);
        System.out.println("double min value:" + Double.MIN_VALUE);
        System.out.println("double max value:" + Double.MAX_VALUE);

        // 打印boolean
        boolean right = true;
        System.out.println("current boolean value:" + right);

        // 打印char
        char ch = '国';
        System.out.println("current char value:" + ch);
    }
}

内置数据类型强制转换

(1)自动类型转换

数学中我们学习过混合运算,同样,我们的代码中也存在混合运算,多个数的求和,如下代码:

public class Main {
	public static void main(String[] args) {
	    byte x = 15;
	    short y = 50;
	    int z = 100;
      // 求和
	    long sum = x + y + z;
		  System.out.println("the sum:" + sum);
	}
}

这段代码中,有不同的Java内置数据类型,混合运算过程中,实际是先将位数小的数据转成位数最大的类型;然后,进行混合运算。针对这段代码,进行以下分解:

byte x = 15; ---> long x = 15L;
short y = 50; ---> long y = 50L;
int z = 100; ---> long z = 100L;
long sum = x + y + Z = 15L + 50L + 100L = 165L;

这种位数小的数据转成位数大的转换,我们可以称之为自动类型转换方式。这种方式是计算机自动处理完成,无需人为干预。Java内置数据类型自动转换的遵循以下规则:

byte, short, char ---> int ---> long ---> float ---> double

注意:boolean类型是不能进行自动类型转换的。

(2)强制类型转换

public class Main {
    public static void main(String[] args) {
        long x = 100L;
        int y = x;
        System.out.println("Integer y:" + y);
    }
}

这段代码编译时,编译器提示:

Main.java:4: error: incompatible types: possible lossy conversion from long to int
        int y = x;
                ^
1 error

Java支持数据从位数小的内置类型自动转换成位数大的内置类型,但是,不支持反向转换。因此,为了支持反向转换操作,需要我们对数据进行强制类型转换。我们对上述程序做点简单的修改;

public class Main {
    public static void main(String[] args) {
        long x = 100L;
        int y = (int)x;
        System.out.println("Integer y:" + y);
    }
}

这段程序可以正常运行了!从上述程序示例中,我们可以得出这样的结论:

如果位数大的Java内置数据类型赋值给位数小的Java内置数据类型时,需要对位数大的Java数据类型按照位数小的Java内置数据类型进行强制转换。

假设位数高的Java内置数据类型T1的变量是num1,位数低的Java内置数据类型T2的变量是num2且其值为value1,我们采用公式化的表述方式:

公式化表述:
T2 num2 = value1;
T1 num1 = (T1)num2;

举例:
long x = 100L;
int y = (int) x;

总结

本讲内容是基础知识点,Java支持8种内置数据类型;这种8种类型分为4类:

  • 整形,byte、short、int、long
  • 字符型,char
  • 布尔型,boolean
  • 浮点型,float、double

基本数据类型之间可以进行转换,转换需要遵循一定的规则。

往期回顾

  • 第1讲 Java前世今生

https://www.toutiao.com/article/7306394115615294006/?log_from=70c615ccdd79d_1701223389682

  • 第2讲 Java开发环境配置

https://www.toutiao.com/article/7306698955294196287/?log_from=73070f7d6bc4e_1701410469896


点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7