在 Java 中使用简单的 getter/setter 的公共(public)属性和私有(private)属性在字节码上有什么区别?
最佳答案
有了 public 领域,你有:
aload_0
iconst_1
putfield #1; //Field public
return
使用私有(private) + 设置/获取:
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)使用。
关于java - 字节码——公共(public)属性和私有(private)属性的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088469/