Java認證之精闢總結

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(b1|b2); 結果是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
發佈了3 篇原創文章 · 獲贊 0 · 訪問量 1503
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章