【发布时间】:2009-07-28 18:25:41
【问题描述】:
做有什么区别
Field field = something.getSomethingElse().getField();
if (field == 0) {
//do something
}
somelist.add(field);
对
if (something.getSomethingElse().getField() == 0) {
//do something
}
somelist.add(something.getSomethingElse().getField());
通过 getter 对字段的引用会导致性能损失还是与引用分配的变量一样? 我知道该变量只是对内存空间的引用,所以 getter 应该只是获取该内存空间的另一种方式。
请注意,这是一个学术问题(只是好奇的学校),而不是一个实际问题。
【问题讨论】:
-
请注意,如果您在多线程环境中工作,两者之间也可能存在差异,因为在 //do something 部分期间,其他线程可能会更改 something.getSomethingElse()。导致 somelist 的附加值在两个代码部分之间有所不同。
标签: java performance variables reference getter