java – 字节码 – 公共和私有属性的差异

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等一些惯例使用.

点赞