Java中使用简单的getter / setter的公共属性和私有属性之间的字节码有什么区别? 最佳答案 在公共领域,你有:
aload_0
iconst_1
putfield #1; //Field public
return
私人设置/获取:
aload_0
iconst_1
putfield #1; //Field private
return
public int getA();
Code:
0: aload_0
1: getfield #1; //Field private
4: ireturn
public void setA(int);
Code:
0: aload_0
1: iload_1
2: putfield #1; //Field private
5: return
因此从性能的角度来看,private set / get只会产生不必要的开销.但它具有架构利润,应该被JavaBeans等一些惯例使用.