3.switch里面只能是short,int,char,byte的. 4.if (a="a") 编译错, if(a=false)编译ok,原因是a=false的a代表了个boolean值 6.这种写法Outer.Inner i = new Outer().new Inner(); OK! 7.文件里, 8 默认是int, 8.0默认是double 8.八进制是 0开头,不是O(英文o) 9.byte -128~127 ,-128是二进制的多少????????????? 11. -1>>32还是-1, -1>>>32为什么还是-1??????????????????? 12. char c='c'; String s ="s"; s+=c;结果是 sc!!! 13. boolean b1=true; boolean b2=true; System.out.println(b1b2); 结果是true.编译没错! ?????Java的默认import包有哪些??????? AWT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. 所有组件flowLayout会被压缩为它们的最小尺寸 2. BorderLayout的North,South,West,East,Center就是这个样子,四个单词大小写区分,必须这么写,否则错????????? 2.1假如只是add,而不写东南西北中,默认是中 2.2假如不加component到中,那中就空着 2.3假如某个方位有个component,假如你还往上面加component,后来的会覆盖原来的 3. applet,panel默认布局是flowlayout 4. frame,dialog默认布局是borderlayout 5. 各种awe类的继续关系,frame,window,component,...?????????? 6. window,frame,dialog不能被嵌入到容器里.注重:window! 7. action event作用于button和textfeild的回车时刻 8. item event作用于list,choice,checkbox的选择改变时刻 9. 假如容器不可见,新layout治理器后前的component将跟随这个新的layout变化,假如容器可见,这些component将不受后来的layout影响 10.gridLayout里的component尺寸一样 11.gridBagLayout里,component可以占用多个grid 12.System.exit();在Applet里面不答应调用. AWT事件 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.事件类有 (symantic)语义事件:ActionEvent,AdjustEvent,ItemEvent,TextEvent 低级事件:ComponentEvent,ContainerEvent,FocusEvent,InputEvent,KeyEvent,MouseEvent,PaintEvent,WindowEvent 2.监听器: ActionListener,AdjustListener,CompentListener,ContainerListener,FocusListener,ItemListener, KeyListener,MouseListener,MouseMotionListener,TextListener,WindwosListener, 共11个Listener, 七个adpter,少的4个是ActionLisenter,AdjustListener,ItemListener,TextListener,它们只有一个方法. 3,鼠标MouseListener有5个方法:clicked,pressed,released,entered,exited 4.鼠标MouseMotionListener有2个方法:mouseDragged,mouseMoved 类和对象(Class and Object) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0.最外层的类可以声明成final: "$file a":< 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.一个类实现两个接口,假如两个接口有相同的方法,实现类就实现这个方法,没问题的. 内嵌类Inner Class) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.内嵌类可以访问outer类的任何变量,包括私有的. 2.静态inner类,只能访问outer类的任何static变量 2.1内嵌类可以是final,abstract的 3.我靠,方法内的内嵌类不能为static: void test(){ static class A{}} XXXXX!!!! 4.我靠,方法内的内嵌类也不能带任何modifier,void test(){ public class A{}} XXXXX!!!! 5.我靠,方法内的内嵌类只能访问方法内的final变量,但是,可以访问outer类的任何变量. 6.匿名类不能有构造器,但声明时候带参数,相当于构造器的参数传递. class ABC{} class ABCD{private ABCD(int i){}} ABC test3(){return new ABC(){};} ABCD test4(){return new ABCD(3){};} interface iii{} iii test5(){return new iii(){};} //class BCD extends ABCD{} compile error,因为, 看上面就知道,new iii(){};实际上匿名类实现了iii接口;new ABC(){};实际上是匿名类继续了ABC. 8.??? class A {private A(){System.out.println("a!");}} class B extends A{} 我靠,没错!B实例的时候会主动调用父类A的构造,即使是private的,看来也没问题!!! 9.内部类可以有synchronized方法,那么锁是这个内部类,跟外部类没一点关系,内外分别的,在锁的问题上. 10.外部类不能通过this被访问,this这时候应该指的是内部类,享用外部类的成员就直接用,不用加任何限定词 11.如何用this呢?请看: class Outer{ int i; class Inner{ class InnerInner{ void Test(){ Outer.this.i=1; } } } } 看见了吧,类名.this.变量名,可以引用到i,第一次看到吧,嘿嘿,孤陋寡闻. 12.注重这两种写法都可以 Class Outer.Inner i = new Outer().new Inner(); 或者, Class o= new Outer(); Class Outer.Inner i=o.new Inner(); 线程Thread) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ?????去看Thread的API!!!! 1.线程启动必须通过start函数. 2.run函数不许也只能是public的. 3.线程有优先级从1到10,通过Thread.setPriority(int);来改变,不能超过10,否则会出现运行异常 4.线程优先级默认是5,即NORM_PRIORITY.????????NORM_PRIORITY是Thread的静态变量吗? 5.????Thread.yeild();是静态方法,所以,使用格式是Thread.yield();她强迫当前的进程放弃CUP. 6.sleep(1000),是说线程睡觉1秒,然后,进入Ready状态,注重,不是运行状态,它还要等OS来调度来获得CUP. java.lang.*; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.数组的科隆: int ia[][]={{1,2},null}; int ib[][]=(int[][])ia.clone(); 2.什么是NaN?????然后看ceil(NaN),floor(NaN),... 3.Math.floor(-1.1f);//-2.0 Math.ceil(-1.1f);//-1.0 Math.round(-1.6d)//-2 4.0= 5.Math,Interger,Boolean...等类型包装类都是final的,不可继续 6.int round(float); long round(double);唉,round永远返回不了小数点 7.static double ceil(double) 8.static double floor(double)注重,ceil,floor的只有这个double版本,什么都转成double! 9.static double sin(double 弧度); 还有cos,tan 10. new String; ?可以是byte[];char[];String;StringBuffer 11. String的一些函数: int length(); char charAt(int); St
|