字节码 - 公共和私人属性的差异

时间:2012-01-31 23:11:55

标签: java private bytecode public

Java中使用简单的getter / setter的公共属性和私有属性之间的字节码有什么区别?

1 个答案:

答案 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等一些惯例使用。