如果 C# 的内置数据类型的实现方式与 Java 的基本数据类型的实现方式相同,性能是否会有差异?
例如,在C#中,如果我们编写以下代码:
int foo = 1;
我们正在声明并实例化一个对象,对吗?
然而,在Java中,当我们编写同一段代码时,我们并没有实例化一个对象。由于 'int
' 是 "implemented directly by the Java compiler and the JVM."
所以我想知道如果 C# 使用与 Java 相同的实现,是否会产生影响——也就是说,每次在 C# 中使用像 int
这样的基本数据类型时,不创建一个对象.
最佳答案
For example, in C#, if we write the following code:
int foo = 1;
we are declaring and instantiating an object, right?
不;您正在声明堆栈上的本地值类型或值类型实例字段。涉及零个物体。 int
不是对象类型,并且 Int32
和 int
在 .NET 中完全相同。
(实际上,有一种情况,foo
最终可能会导致额外的对象 - 与某些方法中的局部变量的处理方式相关;aysnc
、迭代器 block 、lambda 等)
by not making an object every time a primitive data type like int is used in C#.
这正是 C# 所做的事情,并且一直都是这样做的。更多:与 Java 不同,这也适用于泛型。
关于java - 如果 C# 的基本类型以不同的方式实现,性能会有所不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50493592/