黑马程序员技术交流社区

标题: java初学者学习笔记2——引用变量和自动类型提升 [打印本页]

作者: 郑泽霖    时间: 2014-11-15 15:39
标题: java初学者学习笔记2——引用变量和自动类型提升
java有三种引用变量
1数组
2类
3接口
等于C++中的普通数据类型的指针变量
例如:
int[] arr=null;
自动类型提升
1不同数据类型运算
byte b=4;
int x=3;
x=x+b;
结果x=7
byte类型指一个字节,占八位;int类型占四个字节占32位
x+b的是时候,小的数据类型发生自动类型提升
即char to int  float to double 等短到长的提升
2byte类型自加
byte b=3;
b=b+1;
3是常量,默认为int类型

第一句是正确的,第二句是错误的。
第一句,int类型的3成功的自动转换为byte类型的b
第二句,1是int类型,b+1自动类型提升结果也是int类型,但是右边的int类型转换为左边的byte类型却失败了。
因为第一句右边是常量所以转换成功,第二句右边是变量所以自动转换失败,需要强制类型转换,但是有可能丢失精度。
第二句改为:b=byte(b+1);OK
短类型赋值给长类型无论是变量还是常量都会自动类型转换
长类型赋值给短类型只有常量会自动转换,变量是非法的。


作者: 范中俊    时间: 2014-11-16 21:12
学习一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2