阿里的大佬们求解答,这周面蚂蚁,邀请参加了网上编程题,有…

阿里的大佬们求解答,
这周面蚂蚁,邀请参加了网上编程题,有一段代码我是如图所写,阿里面试官说sum是对象不能加加操作,实际我是本地跑过的,况且不是可以自动拆箱和装箱么,是我哪里考虑不到位,想了一天了,求大佬科普下,感恩
阿里,蚂蚁

楼主:求大佬们不吝赐教,实在想不到问题在哪

安道全:换个名字就好了

滴滴员工:m

程序猿.方少云:面试官错了呗,有啥好想的

楼主:换名字的意义在哪

袁尚:M

厦门某公司员工:m

程序猿.撒贝宁小可爱:sum这个名称可能面试官认为是语言保留或者预定义的一个标识符之类的

程序猿.请君上树:Integer++ 会自动拆箱

京东员工:你对比试下对象型和基本型的运行速度

京东员工:大量++操作时候

程序猿.夏侯霸:你是对的,又有什么好纠结的,阿里技术菜又自以为是的大有人在…不过,你打了他的脸,可能不会让你通过,哈哈

拉扎斯网络科技(上海)有限公司员工:楼主这么做,会引起大量Integer 自动拆箱装箱

程序猿.夏侯霸:对的,人家考的不是你技术,是你的品德是不是能听他扯淡,哈哈

程序猿.吉利服啊:面试官其实是想说这种写法太消耗资源了?

程序猿.吉利服啊:小规模业务场景的时候可能没啥区别,但是在**的情况下响应肯定会变慢吧

楼主:我是这么想的,从map中取出的是对象,即使我转成整型,这也是一次拆箱,只是是手动拆而已,加上一,最后put到map,这也会需要装箱,其实跟对象加加这种写法是通往多的拆箱装箱次数,我对比了字节码看的

楼主:我对比过,图中的写法和将sum转成基本类型再计算,这两种写法,字节码层面上拆箱和装箱次数都是一致的,一种手动拆,一种自动拆而已

楼主:一样的,将对象从map中取出,转成基本类型,这是手动拆箱,和自动拆没什么区别吧,我的理解

关平:大量++的话还用这个操作那就是装x过头

楼主:我想过,可能是阿里的工程文化,对变量的语意有要求,比如对象进行加加操作,虽然会自动拆箱装箱,但对语意不好理解,可能是这个问题吧

楼主:这,就当是一次经历也不错

安东尼奥刘能:int sum = ...即可,为啥定义成Integer,多了装箱操作

程序猿.吉利服啊:写个代码多跑循环试试,看时间上有没有差异

楼主:同比单词次数,需要放map存起来

高顺:127

拼多多员工:蚂蚁也有菜的啊

楼主:你是指integer的缓存问题吗,我想过,好像没问题吧

大明王紫川秀:能实现功能,但达不到对代码的极致要求

大明王紫川秀:自动装箱显然增加了多余的操作

微软员工:面试官瞎扯淡,你跟着被扯淡,扯来扯去

自由职业员工:??????

金融信贷.李德彪:?????

前天猫员工:没毛病

楼主:[笑哭]反正我是被说得一愣一愣的

微软员工:哈哈,扯淡的面试官多的是,尤其小鸡8公司

深信服科技员工:没毛病

小米员工:???

武当弟子:可能人家的jdk是1.5之前的,没有自动拆箱装箱

楼主:[吐血]

乔大帮主007:m

阿里巴巴(中国)网络技术有限公司员工[2]:没问题

Microsoft员工:为啥不直接:map.put(letter, map.getOrDefault(letter, 0) + 1);

楼主:你的写法更优雅

北京字节跳动科技有限公司员工:没区别的,Integer是immutable的,要修改就是new一个新的

阿里巴巴员工:并发会有问题

阿里巴巴员工:漏洞太多

楼主:可以稍微解释下不,实在不明白

楼主:可以稍微解释下不,想了挺久不明白

耿鬼:其实jit下可能根本没有发生多余的拆装箱

程序猿.夏侯霸:你是对的,又有什么好纠结的,阿里技术菜又自以为是的大有人在…不过,你打了他的脸,可能不会让你通过,哈哈

拉扎斯网络科技(上海)有限公司员工:楼主这么做,会引起大量Integer 自动拆箱装箱