java对byte,short,char,int,long运算时自动类型转化情况说明
2015-10-17 12:48
567 查看
大家都知道,在进行运算时,java会隐式的自动进行类型转化,那么有哪些情况会进行转化呢?总结如下:
单目运算符:+(取正)-(取负) ++(自增1) --(自减1)
当操作数是byte,short,char时,会自动转化为int类型;返回结果为int。
当操作数是int,long时,不转化,原来是啥类型,还是啥类型。
不管操作数是啥类型,不转化。
双目运算符:+ - * / %(取余)
当两个操作数中没有long类型时,两个操作数中非int类型会先自动转换为int类型,再参与运算,返回结果为int;
当两个操作数中含有long类型时,两个操作数中非long类型会自动转换为long类型,再参与运算,返回结果为long;
位运算符:&(与)、|(或)、^(异或)、~(非)、<< (带符号左移)、 >>(带符号右移)、 >>> (无符号右移)
与1.3情况相同
与1.1情况相同
与1.1情况相同
总结
虽然上面列出这么多种情况,但归纳下不难记住。
即:除了自增加自减不进行转化外,其它情况都是无long型时,所有非int类型转成int类型;有long类型时,都转成long类型
例题:
<span style="font-size:12px;">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 + "");
}
}</span>上述代码,执行test()函数后,屏幕打印结果为:-128 127
转载出处:http://blog.csdn.net/tang9140/article/details/40860529
一、算术运算符
单目运算符:+(取正)-(取负) ++(自增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类型
例题:
<span style="font-size:12px;">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 + "");
}
}</span>上述代码,执行test()函数后,屏幕打印结果为:-128 127
转载出处:http://blog.csdn.net/tang9140/article/details/40860529
相关文章推荐
- java 连接 zookeeper
- Java中 构造函数与初始化块的执行顺序
- spring如何解析通配符路径
- java系统学习(十五) --------xml基础
- java系统学习(十五) --------xml基础
- Java 无法调用默认构造函数
- java7 语法糖 之 switch 声明string
- 博客阅读整理一
- [Eclipse] The type XXX cannot be resolved. It is indirectly referenced from required .class files错误.
- Java基础--初识java
- Java的垃圾回收机制
- java awt和swing
- Java中String中的常量池与intern()
- java 判断浏览器
- 浅述JAVA Socket的简单实例实现
- java上传word2007需要struts配置吗?
- Java String类中的常量池鱼intern()
- 谈论Java递归列出文件目录结构
- JDK高性能编程之容器
- 通过物理模型生成Java代码