Which one is faster, Foo.b or Foo.c?
public class Foo{
    int a = 0;
    public int b(){
        if(a == 0){
            return a = 1;
        }
        return a;
    }
    public int c(){
        if(a == 0){
            a = 1;
        }
        return a;
    }
}
Disassembled byte codes:
  public int b();                                                                                                                                                                                      
    Code:                                                                                                                                                                                              
       0: aload_0                                                                                                                                                                                      
       1: getfield      #2                  // Field a:I                                                                                                                                               
       4: ifne          14                                                                                                                                                                             
       7: aload_0                                                                                                                                                                                      
       8: iconst_1                                                                                                                                                                                     
       9: dup_x1                                                                                                                                                                                       
      10: putfield      #2                  // Field a:I                                                                                                                                               
      13: ireturn                                                                                                                                                                                      
      14: aload_0                                                                                                                                                                                      
      15: getfield      #2                  // Field a:I                                                                                                                                               
      18: ireturn                                                                                                                                                                                      
  public int c();                                                                                                                                                                                      
    Code:                                                                                                                                                                                              
       0: aload_0                                                                                                                                                                                      
       1: getfield      #2                  // Field a:I                                                                                                                                               
       4: ifne          12                                                                                                                                                                             
       7: aload_0                                                                                                                                                                                      
       8: iconst_1                                                                                                                                                                                     
       9: putfield      #2                  // Field a:I                                                                                                                                               
      12: aload_0                                                                                                                                                                                      
      13: getfield      #2                  // Field a:I                                                                                                                                               
      16: ireturn                                                                                                                                                                                      
}                                                                                                                                                                                                      
It seems that Foo.c() has an extra getfield, but Foo.b() also has extra operations.
 
     
    