1。switch里面只能是short,int,char,byte的。
2。if(a=\"a\")编译错,if(a=false)编译ok,原因是a=false的a代表了个boolean值
3。这种写法Outer。Inneri=newOuter()。newInner();OK!
4。文件里,8默认是int,8。0默认是double
5。八进制是0开头,不是O(英文o)
6。byte-128~127,-128是二进制的多少?
7。-1>>32还是-1,-1>>>32为什么还是-1?
8。charc=´c´;Strings=\"s\";s+=c;结果是sc!!!
9。booleanb1=true;booleanb2=true;System。out。println(b1|b2);结果是true。编译没错!
10。java的默认import包有哪些?
类和对象(ClassandObject)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0。最外层的类可以声明成final:\"$filea\":<finalclassa{}>ok!,但是不能是private和static的。
1。overload是同类里同样的方法名,override是父子的继承
2。override的返回结果必须一样,否则编译错哦
Thereturntypeofanoverridingmethodisidenticaltothereturntypeofthemethoditoverrides。
2。1override的modifier可以扩大,但是不能缩小。比如父类privatevoidtest(){}子类:publicvoidtest(){},没问题;如果反了,就死翘翘了!
3。super。super(),靠,错的,没这么写的
4。static和非static之间永远无法override!
5。看程序
publicclassA{
voidtest1()throwsBaseEx{hi();}
voidhi(){System。out。println(\"sayhi,a\");}
}
classAAextendsA{
voidhi(){System。out。println(\"sayhi,aa\");}
}
classtest{
staticvoidmain(Stringb[])throwsException{
Aa=newAA();
a。test1();
}
}
结果是,\"sayhi,aa\",这说明什么?说明,方法永远跟着类的原来面目走;而,变量恰恰相反!
6。一个非抽象方法死活也别想override成一个抽象方法
7。override的子类的方法抛出的的异常只能是父类方法抛出异常的子异常类,或者无!
8。构造器不能是native,final,static,synchronized的,可以是public,private,什么都没有的,呵呵
9。构造器函数里还可以写return呢,但后面什么都不许有,甚至null(这不是废话吗,哈哈)
10。构造器不能返回值。这大家都知道,但如果有个\"构造器\"反值了,别紧张,它就不是构造器喽,只是个普通函数
11。super();this();这两个函数只能在构造函数里调用。
12,成员变量声明时候赋值,比构造函数还早。inti=1;ealierthanTest(){}
13。方法的参数变量可以是final。
14。hashCode返回一个int
15。voidwait()throwsInterruptExceptionwait扔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。一个类实现两个接口,如果两个接口有相同的方法,实现类就实现这个方法,没问题的。
内嵌类InnerClass)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1。内嵌类可以访问outer类的任何变量,包括私有的。
2。静态inner类,只能访问outer类的任何static变量
2。1内嵌类可以是final,abstract的
3。**,方法内的内嵌类不能为static:voidtest(){staticclassA{}}XXXXX!!!!
4。**,方法内的内嵌类也不能带任何modifier,voidtest(){publicclassA{}}XXXXX!!!!
5。**,方法内的内嵌类只能访问方法内的final变量,但是,可以访问outer类的任何变量。
6。匿名类不能有构造器,但声明时候带参数,相当于构造器的参数传递。
classABC{}
classABCD{privateABCD(inti){}}
ABCtest3(){returnnewABC(){};}