gpt4 book ai didi

java - 使用 'this' 关键字会影响 Java 性能吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:47 25 4
gpt4 key购买 nike

使用 this 关键字会影响 Java 性能吗?

在这个例子中:

class Prog {
private int foo;

Prog(int foo) {
this.foo = foo;
}
}

执行以下操作是否会产生性能开销?

class Prog {
private int foo;

Prog(int bar) {
foo = bar;
}
}

今天早些时候,我和几个同事正在讨论这个问题,但没有人能给出我们都同意的答案。有确定的答案吗?

最佳答案

不,一点也不。它只是同一事物的不同语法。它被编译成完全相同的字节码。所以像人一样说:你用两种不同的方式告诉编译器两次完全相同的事情要做什么。


javap 证明了这一点。这是 this.:

{
Prog(int);
flags:
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: aload_0
5: iload_1
6: putfield #2 // Field foo:I
9: return
LineNumberTable:
line 4: 0
line 5: 4
line 6: 9
}

这里没有this.:

{
Prog2(int);
flags:
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: aload_0
5: iload_1
6: putfield #2 // Field foo:I
9: return
LineNumberTable:
line 4: 0
line 5: 4
line 6: 9
}

唯一不同的是 2,但我不得不为这两个测试用例选择不同的名称。

关于java - 使用 'this' 关键字会影响 Java 性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21615780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com