JAVA的数据类型及基本数据类型转换

    xiaoxiao2023-10-02  150

            一、数据类型即JAVA语言中数据的具体分类,决定了内存中存储数据的类型及所需内存的大小,如int类型占4个字节,32位。

            JAVA的数据类型分为两大类,即基本数据类型和引用数据类型。基本数据类型包括byteshortintlongdoublefloatboolean、char八种,而引用数类型包括类、接口、数组、枚举、注解。

            本文对基本数据类型进行解释。八种基本数据类型包括四种整型,即byteshortintlong,两种浮点型,即float、double,布尔型,boolean,字符型,char。

            1.整型(byteshortintlong)

               这四种整型区别在于在内存中占的字节数不同,能表示的数据范围也不同,多分类这是由于早期计算机内存较小,需要根据使用需要合理选择,以节省内存空间。这四种在内存中所占空间依次为1字节、2字节、3字节、4字节,在内存中由0和1组成,且第一位是符号位,0表示正数,1表示负数。 整型数据有四种形式:十进制、二进制、八进制、十六进制。

               十进制整数,如5,56,-45。二进制整数,以0b开头。八进制整数,以0开头。十六进制整数,以0x或0X开头。下面这个简单程序,运行后显示的四个数字分别为5,2,21,244。

    public class number { public static void main(String [] args) { int number_1=5;//这是一个十进制整数 System.out.println(number_1); int number_2=0b010;//这是一个二进制整数 System.out.println(number_2); int number_3=025;//这是一个八进制整数 System.out.println(number_3); int number_4=0xF4;//这是一个十六进制 System.out.println(number_4); } }

               不同类整型数据在内存中分配的空间不同,在编程时要考虑数据取值范围,合理选择数据类型,以提高程序性能。一般情况下,不需要过分拘泥,常常使用int来定义所有整型,因为现今计算机的内存相比上世纪有了极大提升。

            2.浮点型(float、bouble)

              浮点型是定义小数类型的关键字,数据有两种表示方式,包括十进制(如5.556)和科学计数法(如1.23e5)。科学计数法形式为小数/字母e(大小写均可)/十进制整数。

              顺带说明的是,诸如float number=1.23;这样的语句是错误的,因为1.23默认为double类型,double类型在内存中所占空间比float类型大,不能直接赋值给float类型。若要赋值,需进行强制类型转换,形式为float number=(float)1.3;或float number=1.3f;,强制类型转换有可能损失精度。

            3.布尔型(boolean)

              布尔型又称逻辑类型,只有true和false两取值,默认初始值为false。这和C语言不同,C89未曾定义布尔型,C语言判断时以0为假,非0为真。

              在二进制逻辑中,JAVA以0为假1为真。

            4.字符型

              字符型采用了Unicode编码,一个编码占2字节16位,表示范围是0~65535,因为字符没有“正负”。

              字符型的赋值方式如下:

                -使用英文单引号括起单个字符(汉字也可)如char word='a';char word='字';

                -使用英文单引号括起来十六进制字符代码值来表示单个字符,格式为'\uXXXX',其中u是约定的前缀,为Unicode的第一个字母,例如:char word='\u0061';// 实质代表a字母

                -可以直接用数字表示单个字符,如char word=65;//表示大写字母A

                - 某些特殊的字符可以采用转义符'\'来表示,以将其后面的字符转变为其它含义,例如:

       char c1= '\t';//制表符

       char c2= '\n';//换行符号New Line

       char c3= '\r';//回车符Carriage Return

    二、基本数据类型的转换

            基本数据类型转换分为自动转换和强制转换。

            自动转换又称隐式类型转换,将表示范围小的数据类型赋值给表示范围大的数据类型时,Java自动使用隐式类型完成数据类型转换。因为用较大类型保存较小类型,内存一定够用,不需要强制转换,也不可能损失精度。如果将字面值保存到byte、short、char等类型的时候,也会自动转换float x = 100; x的值为100.0。int x = 50; double y; y=x; y的为50.0。

            强制转换又称显式类型转换,如果要把大范围的转化为小范围的,就必须强制转换。强制转换使用转换操作符(),显式地使数值更小以适应更小的数据类型。强制类型转换可能会导致数据精度损失或溢出。

     

    最新回复(0)