java short 转成 long,java对byte,short,char,int,long运算时自动类型转化情况说明

大家都知道,在进行运算时,java会隐式的自动进行类型转化,那么有哪些情况会进行转化呢?总结如下: 一、算术运算符 单目运算符:+(取正)-(取负) ++(自增1) --(自减1) 1.1 +(取正)-(取负) 当操作数是byte,short,char时,会自动转化为int类型;返回结果为int。 当操作数是int,long时,不转化,原来是啥类型,还是啥类型。 1.2 ++(自增1) --(自减1) 不管操作数是啥类型,不转化。 双目运算符:+ - * / %(取余) 1.3 + - * / %(取余) 当两个操作数中没有long类型时,两个操作数中非int类型会先自动转换为int类型,再参与运算,返回结果为int; 当两个操作数中含有long类型时,两个操作数中非long类型会自动转换为long类型,再参与运算,返回结果为long; 二、位运算符 位运算符:&(与)、|(或)、^(异或)、~(非)、<< (带符号左移)、 >>(带符号右移)、 >>> (无符号右移)

2.1

&(与)、|(或)、^(异或) 与1.3情况相同

2.2 ~(非) 与1.1情况相同 2.3 << (带符号左移)、 >>(带符号右移)、 >>> (无符号右移) 与1.1情况相同 总结 虽然上面列出这么多种情况,但归纳下不难记住。 即:除了自增加自减不进行转化外,其它情况都是无long型时,所有非int类型转成int类型;有long类型时,都转成long类型 例题: public class Test2{

public void add(Byte b)

{

b = b++;

}

public void test()

{

Byte a = 127;

Byte b = 127;

add(++a);

System.out.print(a + " ");

add(b);

System.out.print(b + "");

}} 上述代码,执行test()函数后,屏幕打印结果为:-128 127 转载出处:http://blog.csdn.net/tang9140/article/details/40860529

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值