java - 如果 C# 的基本类型以不同的方式实现,性能会有所不同吗?

标签 java c# primitive primitive-types

如果 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 不是对象类型,并且 Int32int 在 .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/

相关文章:

c# - Identity Server 4 强制注销用户

c# - 在 ASP.NET 中如何将 Enum 绑定(bind)到 DropDownList 控件?

objective-c - 在 Objective-C 中处理整数

java - android postgresql数据库连接错误

java - 如何将图像放入ListView javafx中

java - 出现编译时错误 : The import net. corda.core.testing 无法解析

java - 我的基于 Java 的网站是否可供成千上万的用户使用,而我正在编写代码,就像一次只有一个用户访问资源一样?

c# - 类似资源管理器的图像浏览器的最佳控件

r - R函数的括号

java - 在 java 中将 int 转换为 double 然后返回 int