摘要: 类加载的顺序:1.加载静态成员/代码块:先递归地加载父类的静态成员/代码块(Object的最先);再依次加载到本类的静态成员。同一个类里的静态成员/代码块,按写代码的顺序加载。如果其间调用静态方法,则调用时会先运行静态方法,再继续加载。同一个类里调用静态方法时,可以不理会写代码的顺序。调用父类的静态成员,可以像调用自己的一样;但调用其子类的静态成员,必须使用“子类名.成员名”来调用。2.加载非静态成员/代码块:(实例块在创建对象时才会被加载。而静态成员在不创建对象时可以加载)先递归地加载父类的非静态成员/代码块(Object的最先);再依次加载到本类的非静态成员。同一个类里的非静态成员/代码块 阅读全文
posted @ 2014-03-07 12:56 sdrzlyz 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 以前转换只知道使用Xxx.prasexxx方法,原来,还可以直接装箱自动转换。//String类型字符串String intStr = "123";int str2int1 = new Integer(intStr);int str2int2 = Integer.parseInt(intStr);以上两种方式都是可以的。 阅读全文
posted @ 2014-03-07 12:40 sdrzlyz 阅读(202) 评论(0) 推荐(0) 编辑
摘要: class Fa{int a;method A(){}method B(){}}class Son extends Fa{int a;method B(){}method C(){}main(){Fa x = new Son();//引用的是Fa的a,实例变量不会出现多态问题,x前面是什么,就从哪里引用。x.a;//引用的是Fa的A(),因为Son中没有该方法。x.A();//引用的是Son的B(),因为Son中将Fa中的覆盖了,这就是所谓的多态。x.B();//出现错误,因为Fa中并没有C()方法,不能通过编译。x.C();}} 阅读全文
posted @ 2014-03-07 10:41 sdrzlyz 阅读(165) 评论(0) 推荐(0) 编辑