阅读这个问题和这个答案我知道访问字段会在 AOT 编译器中消耗一些性能(感谢 JVM,我可以忘记它)
现在请指导我这个场景:
public class Foo
{
Object fooObject;
}
public class Bar
{
Foo foo;
Object fooObjectCopy = foo.fooObject; // fooObject replica of object foo (not a clone)
void barMethod1()
{
doSomething (fooObjectCopy);
}
void barMethod2()
{
doSomething (foo.fooObject);
}
}
两者都barMethod1()
做barMethod2()
同样的事情。问题是在以下情况下哪一个做得更好(在性能方面):
fooObject
是原始类型fooObject
是一个对象实例
PS请考虑访问成本和缓存未命中。