on passing object reference to static method m1() why it does not become null and why last statement doesn't give errror. Output is X
 class I {
        private String name;
        public String name() {            
            return name;
        }
        public I (String s) {            
            name = s;            
        }
    }
    class J {
        public static void m1 (I i){
            i = null;
        }
        public static void main (String[] arg)
        {
            I i = new I("X");
            m1(i);
            System.out.print(i.name());
        }
    }
 
     
     
     
     
    