Why can't i be initialized before declaring it in code 1 but it can be in code 2 :
    class Code1 {
        void methodOfCode1() {
        //    System.out.println(i); can't use a local field before it is defined
        //    i = 10;                can't initialize a local field before it is defined
              int i;
        }
    }
class Code2{
    static
    {
        i = 10;   //A field can be initialized before it is defined.
    }
    static int i;
}
 
     
     
     
     
     
     
     
    