java-基本数据类型介绍

时间:2022-03-06 15:47:43

在写java代码的时候,所有的变量都需要声明一种数据类型,在java的代码中,数据类型分为基本数据类型和引用数据类型。下面先介绍基本数据类型

基本数据类型由8个:

1、byte字节数据类型,取值范围为-128到127。

2、short短整数数据类型,取值范围为-2^15到2^15-1。

3、int整数数据类型,取值范围为-2^31到2^31-1。

4、long长整数数据类型,取值范围为-2^63到2^63-1。

5、float单精度浮点型,取值范围为4个字节,当数值范围过大或者过小的时候,会出现数值精度的问题,因此对数据精度要求较高的,不推荐使用。

6、double双精度浮点型,取值范围为8个字节,同样的会发生数据计算过后数值精度的问题。

7、char字符数据类型,用单引号括起来的单个字符。

8、boolean布尔数据类型,这种数据类型只有两个值,true和false,true表示真,false表示假。

 

以下是定义变量,并声明数据类型的事例代码:

public void method_1(){
     //byte字节数据类型:byte,取值只能是-128到127
     byte b = 127;
     //short短整形数据类型,不常用
     short s = 100;
     //int整形数据类型,常用
     int i = 100;
     //long长整形数据类型,不常用,定义的值必须在后面加上一个L
     long l = 100L;
     //float单精度数据类型,取值范围为4个字节,在定义的值后面加上f
     float f = 100.1f;
     //double双精度数据类型,取值范围8个字节,值后面的d可以省略
     double d = 100.1;
     //char字符数据类型,用单引号括起来的单个字符
     char   c = 'a';
     //boolean布尔数据类型,只有两个值,true和false
     boolean bool = true;               
}

java一共只有8种基本数据类型,那么,对于一个变量,怎么进行数据类型的转换呢?比如,将int类型转换成long或者其他数据类型等。

对于数据类型的转换分为两种:隐式转换和显示转换(强制转换)。

1)隐式转换:数据类型自动的转换,这种方式是用在小范围的数据向大范围的数据进行转换,比如:int类型向long类型进行转换。

用图示举例:

java-基本数据类型介绍

以上图为例:比如int数据类型为一个容器,现在int里面是装满了水的,要将int里面的水,倒入long数据类型的容器里面,会发现,long的数据类型容量比int的数据类型容量要大,则可以将int容器里面的水装入long数据类型的水中,这就是long数据类型的取值范围比int数据类型的取值范围大,则虚拟机会自动的将int数据类型的变量,自动的转换成long数据类型。

事例代码:

public void method_2(){
   //定义一个变量a,数据类型为int
    int a = 1000;
   //定义一个变量b,数据类型为long,并且将a的变量赋值给b
   long b = a;  
}

以上代码中,a的数据类型为int,b的数据类型为b,但是却能够将a的值直接赋值给b变量,这里面就涉及的是隐式转换,int b = a,就是将a的int型转换成long类型,再赋值给b。

2)显示转换(强制转换):

用图示举例:

java-基本数据类型介绍

如上图为例:还是将long数据类型和int数据类型分别看成一个容器,现在要将long数据类型里面的水,装入int数据类型中,显而易见,int数据类型可能并装不下long数据类型的所有水,这个时候就会发生溢出,数据也是一样,如果将大范围的数据类型转换成小范围的数据类型,就可能造成数据丢失。因此代码会报错,错误原因:java-基本数据类型介绍

但是有可能是这种情况:

java-基本数据类型介绍

如上图所示,我们自己明确的知道,long数据类型里面的水,装入int数据类型中,也是不会出现溢出的,这个时候,就需要进行强制转换,将long数据类型的变量,强制转换成int。

事例代码:

1 public void method_3(){
2     //定义一个变量a,数据类型为long
3    long a = 1000;
4    //定义一个变量为b,数据类型为int,并且将数据上面的a赋值给b
5    int  b = (int)a;
6 }

如以上代码,想要将数据类型为long的变量a赋值赋值给数据类型为int的变量b,则需要先将a进行强制转换成int:(int)a,再赋值给b,否则会报错,导致编译失败