| Gzu521.com我的学习网 |
|
1.switch里面只能是short,int,char,byte的.
2.if (a="a") 编译错, if(a=false)编译ok,原因是a=false的a代表了个boolean值 3.这种写法outer.inner i = new outer().new inner(); ok! 4.文件里, 8 默认是int, 8.0默认是double 5.八进制是 0开头,不是o(英文o) 6.byte -128~127 ,-128是二进制的多少? 7. -1>>32还是-1, -1>>>32为什么还是-1? 8. char c=’c’; string s ="s"; s+=c;结果是 sc!!! 9. boolean b1=true; boolean b2=true; system.out.println(b1 b2); 结果是true.编译没错! 10.Java的默认import包有哪些? 类和对象(class and object) 0.最外层的类可以声明成final:final class a{} ok!,但是不能是private和static的. 1.overload是同类里同样的方法名,override是父子的继承 2.override的返回结果必须一样,否则编译错哦 the return type of an overriding method is identical to the return type of the method it overrides. 2.1 override的modifier可以扩大,但是不能缩小.比如父类private void test(){} 子类:public void test(){} ,没问题;如果反了,就死翘翘了! 3.super.super(),靠,错的,没这么写的 4.static和非static之间永远无法override! 5. 看程序 以下是引用片段: public class a{ void test1() throws baseex{hi();} void hi(){system.out.println("say hi,a");} } class aa extends a{ void hi(){system.out.println("say hi,aa");} } class test{ static void main(string b[]) throws exception{ a a = new aa(); a.test1(); } } 结果是,"say hi,aa",这说明什么?说明,方法永远跟着类的原来面目走;而,变量恰恰相反! 6.一个非抽象方法死活也别想override成一个抽象方法 7.override的子类的方法抛出的的异常只能是父类方法抛出异常的子异常类,或者无! 8.构造器不能是native,final,static,synchronized的,可以是public,private,什么都没有的,呵呵 9.构造器函数里还可以写return呢,但后面什么都不许有,甚至null(这不是废话吗,哈哈) 10.构造器不能返回值.这大家都知道,但如果有个"构造器"反值了,别紧张,它就不是构造器喽,只是个普通函数 11.super();this();这两个函数只能在构造函数里调用. 12,成员变量声明时候赋值,比构造函数还早.int i=1; ealier than test(){} 13.方法的参数变量可以是final. 14. hashcode返回一个int 15. void wait() throws interruptexception wait扔interruptexception异常 16. java.lang.void 是void的包装类 17. byte,interger,double...所有的跟数有关的包装类都是继承于number 接口interface) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.接口的所有方法默认都是public,abstract和non-static的 2.接口的所有变量默认都是public,static,final的.所以,接口的变量不能改值,在它的实现类里. 3.接口的实现类实现的方法必须和接口的方法抛出同样的异常,不许是子类,这和override不一样!同样,如果接口方法没有抛,实现方法也不能抛 4.实现类实现的方法必须显式的声明成public,什么都不写都不行,啊!!! 5.接口不能声明成final,要不它怎么被实现呢(这好像又是废话啊 6.一个类实现两个接口,如果两个接口有相同的方法,实现类就实现这个方法,没问题的. |
责任编辑:gzu521