先看下代码:
int a = 1;
Integer b = 2;
int c = a + b;
它能正确执行吗?
为什么包装类型与基本类型能做运算呢?
两种类型做运算影响效率吗?
一,能正常运行。
二,因为对包装类型 Integer 做了拆箱,转换成了基本类型 int 。(自动装箱、拆箱在编译之后被转化成了对应的包装和还原方法。 ——《深入了解java虚拟机》)
三、运行效率的问题,这应该是是每个‘优秀’程序员都关注的问题。其实答案已经在上的解答中有了结果。‘自动装箱、拆箱在编译之后被转化成了对应的包装和还原方法’,‘编译器’帮我们做了转换,这是‘语法糖’。编译时就把代码做了转化,所以不会影响运行效率。
文章虽然不长,但是你可能想不到就这么短短几句话,我是删删改改了好久生怕哪里写错,希望大家指正。
由于武汉的事情,大家出门记得带口罩哦 ,照顾好自己。
图书推荐:《深入了解java虚拟机》虽然里面有些内容晦涩难懂,但是你耐心的读下去就会有收获,会让你对java程序有更深的了解,写出更加高效的代码。(有需要的可留言,我分享给你。)
分享java开发相关的各种知识。欢迎大家一起探讨、学习。