栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么Java集合不能直接存储原始类型?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么Java集合不能直接存储原始类型?

这是一个Java设计决策,有人认为这是一个错误。容器需要对象,而基元不是从对象派生的。

这是.NET设计人员从JVM中学到的地方,并实现了值类型和泛型,因此在许多情况下都无需装箱。在CLR中,通用容器可以将值类型存储为基础容器结构的一部分。

Java选择在编译器中100%添加通用支持,而没有JVM的支持。JVM本身就是这样,它不支持“非对象”对象。Java泛型允许你假装没有包装器,但是你仍然要付出拳击的性能代价。这对于某些类的程序很重要。

装箱是一种技术折衷,我认为这是泄漏到语言中的实现细节。自动装箱是不错的语法糖,但仍然会降低性能。如果有的话,我希望编译器在自动装箱时发出警告。(据我所知,现在也许是在2010年,我写了这个答案)。

关于拳击的一个很好的解释:为什么有些语言需要装箱和拆箱?

以及对Java泛型的批评: 为什么有人声称Java的泛型实现不好?

在Java的辩护中,很容易向后看和批评。JVM经受了时间的考验,并且在许多方面都是不错的设计。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441839.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号