Java中使用简单的getter / setter的公共属性和私有属性之间的字节码有什么区别?
答案 0 :(得分:2)
对于公共领域,你有:
aload_0
iconst_1
putfield #1; //Field public
return
使用private + set / get:
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等一些惯例使用。