Which is better: letting Java do autoboxing or using valueOf()

房东的猫 提交于 2019-11-27 15:49:08

问题


I am just wondering is there any difference in letting java autobox say an integer:

Integer myInteger = 3; // This will call Integer.valueOf()

or having your code as

Integer myInteger = Integer.valueOf(3);

Is there any micro optimization on this? I know the second one is more explicit, but it is also more unnecessary typing, is there any difference besides this?.


回答1:


They are equal anyway internally, so use the first variant. Chances are good, that future compiler optimizations may make the first even faster in the future.




回答2:


I'd use the first choice. It's the same thing with less code.

Unless I expect that the program would have to run on an older version of JVM. However, in that case this would be far from being the only compatibility issue.

So, the only reason not to use autoboxing is if it's not available.




回答3:


That I know, there really isn't a huge difference in performance see this post here The difference isn't really a difference, but you should use valueOf, because Integer now caches Integer objects between -128 and 127.



来源:https://stackoverflow.com/questions/5253256/which-is-better-letting-java-do-autoboxing-or-using-valueof

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!