- 一.数据类型
- 二.类型转换
- 1.不同类型转换
- ①自动类型转换
- ②强制类型转换
- ③类型提升
- 2.字符串型数据与整型数据相互转换
- ①字符串转换为数值数据
- ②数值类型转换为字符串
数据类型分类:
二.类型转换 1.不同类型转换 ①自动类型转换注:①.8bit为一个字节,例如整型的范围计算方法:整型为4字节,也就是32bit,其中一个是符号位(表±),其余31bit可以用来表数值位 ,由于可以有0和1两个数表示,即表示范围为2³¹~-2³¹,因为其中包括0,所以正数的范围为2³¹-1,最终为-2³¹~2³¹-1。其它数据类型范围的计算过程如上。
②.引用数据类型暂不做介绍。
java语言会在下列条件同时成立的时,自动进行数据类型转换:
ⅰ转换前的数据类型与转换后的类型兼容。
ⅱ转换后数据类型的表示范围比转换前数据类型的表示范围大。`
条件ⅱ说明不同类型的数据进行运算时,需先转换为同一类型,然后进行运算。转换从“短”到“长”的优先关系为:
若是想将int类型的变量a转换为float类型,由于int与float皆为整数类型,符合上述条件ⅰ,而float的表示范围比int大,也符合条件ⅱ,因此Java语言会自动将原为int类型的变量a转换为float类型。
代码如下:
int a=10; float b=a;//a的范围小,编译器会自动提升为float,然后赋值
输出 b=10.0
注:
②强制类型转换由于boolean类型只能存放true或false,与整数及字符不兼容,因此不可能做类型的转换
如果要将较长的数据转换成较短的数据时,就要进行强制类型转换。
格式如下
(欲转换的数据类型)变量名
int a= 3; double d = 5.12; d = a; // int-->double,数据范围由小到大,隐式转换 a= (int)d; // double-->int, 数据范围由大到小,需要强转,否则编译失败③类型提升
ⅰ. 当不同数据类型计算时,范围小会被提升到范围大的,在进行计算。
举个例子:int和duoble
int a=10; double b=15.0; double c=a+b // 编译成功:a + b==>int + long--->long + long 赋值给long
输出 25.0
ⅱ. short或byte的运算
byte a=10; byte b=10; byte c=a+b; System.out.println(c);//编译出错
原因如下:
2.字符串型数据与整型数据相互转换 ①字符串转换为数值数据在一个表达式中若有整数类型为short或byte的数据参加运算,为了避免溢出,Java会将表达式中的short或byte类型的数据自动转换成int类型,这样就可以保证其运算结果的正确性,这也是Java语言所提供的“扩大转换”功能。
方法:
例如:
String a="123.567" float b=Float.parseFloat(a);//将字符串型变量a的值转换成浮点型数据后,赋给变量b②数值类型转换为字符串
在Java语言中,字符串可用加号“+”来实现连接操作。
例如:
int num = 10; String str1 = num + "";
注:任何数据类型和字符串拼接的结果是字符串



