【发布时间】:2018-01-20 02:59:07
【问题描述】:
关于 Java,我非常习惯于将我的所有变量声明为私有并生成公共 getter 和 setter 以遵守通用约定。
不过,我觉得这很奇怪:对于除了分配和返回请求值之外没有其他功能的 getter 和 setter,调用以下方法是否不会影响性能:
String getValue() {
return value;
}
代替:
classInstance.value;
编译器是否在这里做一些事情来帮助防止函数调用添加额外的循环?如果不是,那么在更强大的应用程序中,这种理论上的命中是否会滚雪球?
编辑:: 为了澄清起见,这个问题并不是问为什么应该或不应该使用访问器方法,问题是使用访问器是否会影响性能。
【问题讨论】:
-
非常广泛的问题,但一般不要使用微优化,干净的可读性更重要。
-
在任何足够复杂的程序的范围内,我认为开销可以忽略不计
-
我不认为它太宽泛了。使用公共变量定义 getter 和 setter 方法是否会在 Java 中增加额外的工作周期?就个人而言,我不认为 classInstance.getValue() 的可读性比 classInstance.value 差;
-
这真是一个来自另一个时代的问题。现在让程序变慢的是数据库缓存、多线程和性能扩展等问题
标签: java variables optimization compiler-construction