包装类的+、-、*、/以及==操作的内部实现是用了运算符重载吗?
如题,java有没有运算符重载这个概念?
如果有,则
Integer i1 =200;
Integer i2 = 200;
boolean b1 = (i1 == i2);
boolean b2 = (i1 == 200);
其中,b1是false,是因为Integer类没有重载参数为Integer类型的==操作符,所以实际调用的是Object类的==操作符,即比较两个对象的地址;而b2是true,是因为Integer类重载了参数为int类型的==操作符,内部实现里比较了i1里存储的数值和200。
是这样吗?
23
收起
正在回答
2回答
所谓Java不支持运算符重载,是指没有类似C++那种的显示的提供程序员自行代码编写的形式,以降低不稳定性。至于自动拆装箱是编译操作的时候自动执行的,完成的是基本数据和对象之间的转换。
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星