关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。
两天前关门了。
改进这个问题
我在学习java之前有过c++和c#方面的经验。
我不明白的一点是,为什么java同时有原语和装箱原语。
据我所知,装箱原语会带来性能损失,我们不应该尽可能使用它们。那么为什么java一开始就引入了它们呢?为什么java的创建者决定区分原语和装箱原语?
我很想从语言设计的Angular 得到答案。我知道 List<Integer>
它只能接受装箱的原语。但是在c#,把非装箱的原语放在 List
完全可以,不会触发装箱和拆箱。
我的猜测是,非装箱原语实际上是对完全面向对象语言的性能优化。但如果是这样的话,c#是如何绕过这个问题的?
1条答案
按热度按时间eyh26e7m1#
在java中,每个对象都包含一个相应基元类型的值。 Package 类是不可变的(这样一旦对象被构造,它们的状态就不能改变)并且是最终的(这样我们就不能从它们继承)。