Java语言中的数据类型分为基本数据类型和引用数据类型。
基本数据类型是Java中固有的数据类型,是不可再分的原始类型。基本数据类型分为整数型、实数型(浮点型)、字符型、布尔型。Java的基本数据类型都有长度固定的数据位,整数型分为byte、short、int、long四种类型,分别占1个字节、2个字节、4个字节、8个字节;实数型分为单精度类型float与双精度类型double两种,分别占4个字节与8个字节;字符型为char,占2个字节;布尔型为boolean,占1个字节。
Java中的数据都是带符号的,在数值类型(包括整数型与实数型)的数据中,第一位都是符号位。因此整数型的数据类型都有自己的取值范围,如byte型,1个字节为8位2进制数,第一位为符号位,0表示正,1表示负,后7位决定范围,人们将1000 0000定义为-128,所以byte型的范围是-128到127。同理,short型的范围是-2^15到2^15-1,int的范围是-2^31到2^31-1,long的范围是-2^63到2^63-1。实数型的数据与整数型的数据在存储方式上有区别,以float为例,第一位为符号位不变,之后6-7位为有效位,存储小数点后的数据,剩余数据位存储指数位,因此float虽然只占4个字节,但比占8个字节的long所能存储的数据还要大。
字符型的数据是用单引号括起来的单个字符,可以是英文字符,也可以是中文字符,如'A'、'a'、'字'等。与C语言不同,Java中的char类型占2个字节,所以可以存放中文字符,而C语言中的字符类型占1个字节,只能存放英文字符。
布尔型的数据表是逻辑值,只有两个常量值,分别为true和false。
引用数据类型是基于面向对象而产生的,是用户根据自己的需要定义并实现其运算的类型。引用数据类型分为类(class)、接口(interface)、数组(array)、字符串(String)等。
在Java中,不同类型的数据进行混合运算时,需要先将数据类型进行统一,因此出现了数据类型的转换。
当参与运算的数据类型不统一时,小范围的数据自动向大范围的数据转换,也可以说是低优先级的类型自动向高优先级的类型转换,称为隐式转换。Java数据类型的隐式转换顺序为byte-->short-->int-->long-->float-->double ;char类型的数据在参与运算时,也会先转换成int型。整数型的数据默认为int型,实数型的数据默认为double型,为了表示不同的数据类型,可以在数据末尾加数据类型的首字母加以区分,如:10b,1.0F等,首字母大小写均可。
如果有需要将大范围的数据类型转换成小范围的数据类型,则需要进行强制转换。使用格式为:
小范围的数据类型 变量名 = (小范围的数据类型)大范围的数据类型的计算结果;
基本数据类型是Java中固有的数据类型,是不可再分的原始类型。基本数据类型分为整数型、实数型(浮点型)、字符型、布尔型。Java的基本数据类型都有长度固定的数据位,整数型分为byte、short、int、long四种类型,分别占1个字节、2个字节、4个字节、8个字节;实数型分为单精度类型float与双精度类型double两种,分别占4个字节与8个字节;字符型为char,占2个字节;布尔型为boolean,占1个字节。
Java中的数据都是带符号的,在数值类型(包括整数型与实数型)的数据中,第一位都是符号位。因此整数型的数据类型都有自己的取值范围,如byte型,1个字节为8位2进制数,第一位为符号位,0表示正,1表示负,后7位决定范围,人们将1000 0000定义为-128,所以byte型的范围是-128到127。同理,short型的范围是-2^15到2^15-1,int的范围是-2^31到2^31-1,long的范围是-2^63到2^63-1。实数型的数据与整数型的数据在存储方式上有区别,以float为例,第一位为符号位不变,之后6-7位为有效位,存储小数点后的数据,剩余数据位存储指数位,因此float虽然只占4个字节,但比占8个字节的long所能存储的数据还要大。
字符型的数据是用单引号括起来的单个字符,可以是英文字符,也可以是中文字符,如'A'、'a'、'字'等。与C语言不同,Java中的char类型占2个字节,所以可以存放中文字符,而C语言中的字符类型占1个字节,只能存放英文字符。
布尔型的数据表是逻辑值,只有两个常量值,分别为true和false。
引用数据类型是基于面向对象而产生的,是用户根据自己的需要定义并实现其运算的类型。引用数据类型分为类(class)、接口(interface)、数组(array)、字符串(String)等。
在Java中,不同类型的数据进行混合运算时,需要先将数据类型进行统一,因此出现了数据类型的转换。
当参与运算的数据类型不统一时,小范围的数据自动向大范围的数据转换,也可以说是低优先级的类型自动向高优先级的类型转换,称为隐式转换。Java数据类型的隐式转换顺序为byte-->short-->int-->long-->float-->double ;char类型的数据在参与运算时,也会先转换成int型。整数型的数据默认为int型,实数型的数据默认为double型,为了表示不同的数据类型,可以在数据末尾加数据类型的首字母加以区分,如:10b,1.0F等,首字母大小写均可。
如果有需要将大范围的数据类型转换成小范围的数据类型,则需要进行强制转换。使用格式为:
小范围的数据类型 变量名 = (小范围的数据类型)大范围的数据类型的计算结果;
如:int a = 1 ; byte b = 1 ; byte result = (byte) ( a + b ) ;
在强制转换时要注意,根据数据类型的范围进行转换,不要超出范围。