马士兵Java课堂笔记-2-基本数据类型转换问题

1) Boolean(布尔)类型是不可以转换为其他类型的,强制类型转换也不行,例如:

boolean b1=1;
int a=(int)b1;

是错误的;


2) char,short,byte三种类型在进行运算时都会先转换成int类型再进行运算,所以它们的运算结果都会是int类型,例如:

byte b1=1,b2=2;
byte b3=b1+b2;

就是错误的,因为两个byte类型b1+b2进行运算,会先将其转换为int型再进行运算,运算结果就是int型,而int型赋值给byte类型就需要进行强制类型转换,此时就会碰到另一个问题:

int类型在内存中占用4个字节,而byte类型1个字节,所以int强制转换为byte类型也不是不可以,就是直接把int类型内存中的前3个字节直接去掉,这样的话,如果int中如果前3个字节有数据就会丢失。


3)其他类型进行运算时按照如下顺序进行自动转换:

char->int->long->float->double

4)强制类型转换中,int类型转换为byte类型时,直接把内存中多余的3个字节去掉就可以了,但是double类型强制类型转换为float类型时就会有错误,因为double类型在内存中存放方式与int类型不太相同,不能直接进行字节的删减,具体存放方式我还不太清楚。。。


5)除了四类八种(byte,short,int,long,float,double,boolean,char)数据类型,其他的都为引用类型,例如字符串类型String就是引用类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值