数据类型的转换
文章目录
前言
理解自动转换与强转以及特殊情况
提示:以下是本篇文章正文内容,下面案例可供参考
一、自动类型转换
1.定义与规则
容量小的类型自动转换为容量大的数据类型。
数据类型按容量大小排序为:
2.注意点
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
- byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
- boolean类型不能与其它数据类型运算。
- 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。
二、强制类型转换
1、定义与使用规则
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。
使用时要加上强制转换符:(),但可能造成精度降低或溢出,格外要注意。
2、注意点
- 通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
eg.String a = “43”; int i = Integer.parseInt(a); - boolean类型不可以转换为其它的数据类型。
三、强转的特殊情况
1、编译情况一
(1)、long与int型转化
下面展示一些 简单例子
class VariableTest4{
public static void main (string[] args) {
long I =123123; //成功
System.out.printIn(I);
//编译失败:过大的整数
//long I1=2133243235234123; 失败
long I1=2133243235234123L; //成功
赋值long型时:
1、如果不加’l’或’L’,且右侧为整形,计算机自动把右边定义为int型,从int自动转为long型
2、如果输入的数超出int的范围,则编译错误
(2)、float与double的转换
下面展示一些 简单例子
class VariableTest4{
public static void main (string[] args) {
//编译失败
//float f1=12.3;
//编译成功
float f1=12.3F;
或者float f1=(float)12.3;
两者也有区别
右边是浮点型时,计算机自动定义为double型,如果左边是float,即为大转小,强转造成错误
********一定不可这样转********
2、编译情况二
规则:
- 整型常量默认为int型
- 浮点型常量默认为double型
下面展示一些 简单例子
class VariableTest4{
public static void main (string[] args) {
byte b=12; //b为变量
byte b1=b+1; //报错,'1'为整型常量,故为int型,右边转为int型,左边byte,大转小
float b2=b+12.3; //报错,理由同上