包装类的+、-、*、/以及==操作的内部实现是用了运算符重载吗?

包装类的+、-、*、/以及==操作的内部实现是用了运算符重载吗?

如题,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。

是这样吗?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

所谓Java不支持运算符重载,是指没有类似C++那种的显示的提供程序员自行代码编写的形式,以降低不稳定性。至于自动拆装箱是编译操作的时候自动执行的,完成的是基本数据和对象之间的转换。

喜欢做梦的鱼 2017-03-22 10:57:20

包装类的比较是引入自动拆装箱之后产生的,跟运算符重载不一样的,没有类比关系。

  • 提问者 人土土zzzzz #1
    查了一下,Java不支持运算符重载,不知道这个自动拆装箱是如何实现的?
    2017-03-22 11:19:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师