我正在寻找一种语言/库(最好是基于JVM的语言),该语言/库可以方便且有效地处理数字值(整数和浮点数)。
是否有一种语言能够以相同的便利性但有效地处理基元(与该语言的一般性能相比)?
答案 0 :(得分:1)
C#是否符合标准,取决于您对效率要求的含义。当然,它不能在JVM上运行。
与Java一样,Java使用类型擦除来实现泛型,而C#则像C ++一样通过验证实现泛型。这意味着当您创建List<int>
时,基础数组将是int
的数组,而不是对象的数组。同样,实现所有List
方法的代码将专门针对List<int>
进行编译,并且可以利用特定于int的优化。
因此,在使用所有便利的语言功能时,在C#中使用基本类型的数据处理通常比在Java中更快。但是,由于运行时检查(防止缓冲区溢出等)不是免费的,因此它与C ++相比仍然相去甚远。