<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-200  評論-148  文章-15  trackbacks-0

    下面的東西是我收集到的,開發中能用到,備份一下


    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.編譯沒錯!
    10java的默認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)
    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=<1
    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); String toUpperCase(); String toLowerCase();
    12. String("Abc").equals(String("abc"))不相等的,不然就不會有boolean equalsIgnoreCase(String)函數
    13."012345678"是一個串的順序號碼,indexOf('1'),indexOf("1")都返回1,subString(1,5)是2345,嘿嘿:是"[)"的感覺
    14, trim()連tab都退毛,"\t\n java ",trim()一下就只剩下"java"了
    15. 關于對象的科隆,去喳喳API
    16. "abcd".trim(),"abcd" + new String("ef")都是合理的寫法
    17. StringBuffer的3個構造器: ()初始化容量為16,(int 初始化容量),(String),初始化容量為串長加上16
    18. StringBuffer的一些函數: String toString(); append();reverse();insert();delete(int start,int end);deleteCharAt(int);setLength(int newLength);
    19. String s=""; StringBuffer sb=new StringBuffer(); if (s==sb){}編譯錯!因為,s,sb類型不一樣,不能比較
    集合:
    1.各接口和類的關系,只有最后一個是類
    Collection:List:vector,ArrayList,LinkedList
    Map:SortedMap:TreeMap
    Collection:Set:SortedSet:TreeSet
    Map:HashTable
    Collection:Set:HashSet
    基礎Base)
    1.java application的main可以不是public的.但必須是static的
    2.一個文件只能有一個public類,而且還得跟文件名一樣,包括大小寫
    3.變量只能是字母,$,_開頭,接下來的第二個可以是,數字
    4.ch\u0061r='a'; char \u0063='b'; char c='\u0063';都是合法的
    5.1e-5d,合法.e-5d不合法,必須有前面的系數
    6.int[] i[]={null{1,2}}正確! int i[]={1,2,3,} 正確!","和沒有的效果一樣
    7.局部array,跟變量一樣,使用前要初始化
    8.main方法可以為final
    操作符和分配符(Operator and Assignment)
    1.System.out.printl(1+2+"3");//33 System.out.printl("1"+2+3);//123
    2.int i=0; i=i++;i=i++;i=i++; 結果,i=0!
    3.int i[]; index=0; i[index]=index=5; 結果是,i[0]=5;!
    4.byte b=10;可以,因為,10可以被自動從int轉成byte
    5.接下來,byte b=b+10;不可以因為,10+b后的int無法被自動從int轉成byte,問我,我也不知道為什么!靠!
    6.byte b1 = 4; byte b2 = 6; b1 = b1 + b2;錯!編譯錯!b1 + b2后,必須強制轉成byte,b1x1+b2);
    7.XOR 一樣的為0,不一樣為1 1,1=0;0,0=0;1,0/0,1=1
    8. x == Float.NaN編譯錯,應該是Float.IsNaN
    9. x == Double.POSITIVE_INFINITY編譯可以
    10.-1是1111.... 1111,<<永遠右補零,>>正補零,負補一,>>>恒補零
    10.1 -1>>多少位都是-1 1<<31變成了最小負數,1000....0000
    11.最大正數是01111....1111
    12.最小負數是1000....0000(-2147483648)
    13. a instanceof b,b必須是類/接口,不能是實例
    補充
    1. byte,short,char 都存在 var = -var;編譯錯誤,因為,這時候的-var已經自動轉成個int類型了
    2. int/0會扔出ArithmeticException
    double,float/0得INF或者-INF
    0/0得NaN
    3. int a-b-c;是不符合命名規則的變量名編譯會出錯.
    4. char a='\u0001';對! char b=\u0001;編譯錯!
    5. boolean b1,b2,b3,b4,b5;
    b1 = b2==b3;
    b1 = b2<=b3 && b4==b5;
    b1 = b2==b3==true
    都是對的!靠!變態!
    b1 = b2==b3==b4 XXXXXXX編譯錯!
    6. 1>>1 是0
    7. %= <<= =>> =>>>都是合法符號
    8. --1-10*4 這種寫法沒錯,就是 (--1)-10*4
    9. k=1;++k + k++ + +k 結果是7,相當于 (++2)+(2++)+(+3)
    10.標號不能標示聲明.
    hi:
    if {
    break hi;
    //break hi1;不行,不能向后調轉
    }
    //hi1:不行,不能放在聲明前
    int i;
    hi1:
    i=1;
    11.public static void main(String s[]) throws Exception{}可以噢,main可以扔出異常
    12. hi:
    if(b==true){break hi;}
    break 標號,可以用在if里面.別的任何都不行,包括break,continue 標號.
    13.int x = i*-j; 沒問題的!編譯沒錯! int x = i*j++ + +i++; 這個也沒問題,
    變量修飾符(Modifier)
    1.最外面一層的類不能聲明成protect和pravite的
    2.同一個類的兩個實例之間可以訪問彼此的私有方法和私有變量,酷
    3.protect和無修飾符的具體區別?關于外包可以訪問被子類訪問的是哪個?
    4.成員變量被修飾成final后,必須聲明時候就賦初值或者在構造器里面賦初值,別指望她可以得到default值.
    5.抽象方法不能是static的!
    6.靜態方法將隨著類的變化而變化,看例子:
    class Parent{
    static void test(){System.out.println("hi,parent")};
    }
    class Child extends Parent{
    static void test(){System.out.println("hi,child")};
    }
    Parent p = new Child();
    p.test(); //打出來的是hi,parent!
    7.靜態方法可以通過類的實例調用.
    new Child().test(); 和 Child.test(); 都OK!
    8.transient只能用在類的成員變量上,不能用在方法里.
    9.transient變量不能是final和static的
    10.native方法可以是private,abstractd的
    流程控制
    1。不可到達的語句聲明為錯:while(false){} for(;false{};if(false){}都無法編譯
    2。for(第一部分;的第一部分可以用來聲明或者賦值,但不能兩者都
    3。byte b; switch { case 200: // 200 not in range of byte,因為200超過b的范圍,將編譯錯誤
    4。帶標簽的continue回達到標簽的位置,從新進入緊接在標簽后面的循環
    5。帶標簽的break會中斷當前循環,并轉移到標簽標示的的循環的末尾
    轉型和上溯(Converting and Casting)
    Binary operators convert the smaller(less precise) operand to the type of the larger(more precise) operand.
    All operators will convert things smaller than ints to ints or larger. This includes char 's!
    1.byte,char,short默認轉成int
    2.byte->short->int->long->float->double
    char^
    這是默認可以轉型的方向,反了必須要顯式cast! 特別注意:long->float是默認的,別看long64,float32,
    還有就是看得出來,char和 byte,short之間無法互相默認轉換
    3.float f=1/3; OK!float f=1.0/3.0;編譯出錯,因為1.0/3.0結果是double的,錯
    4.int i=1; byte b=i;錯!需要顯式cast.
    final i=1; byte b=i;就ok! 我也不知道為什么,final就可以.而且,據我實驗只有int和byte的關系這樣,其他不行.
    5.int i[]; Object[] obj=i;錯! Object obj=i;對! 數組只能轉成Object,而不能是Object[]
    6.int i[]; Object[] obj;i=(int[])obj; 對! 對象可以通過顯式來轉成一個數組.
    I/O
    1.File類的一些重要方法:isFile();isDirectory();String[] list();exists();getAbsolutePath();getParent();
    2.通過delete();mkdir();rename(File newname);可以操縱文件,但是卻改變不了文件的內容
    2.1 File類無法改變當前目錄,除非重新創建一個File對象.
    3.InputStreamReader(InputStream in,String encodingName);
    OutputStreamReader(OutputStream in,String encodingName);
    Encoding: 8859_1是Latin-1,包含ASCII
    4.關閉close一個流,就自動調用了flush.
    5.System.in,System.out,System.err,由JVM自動創建
    6.RandomAccessFile(File file,String mode);mode有,r,rw

    posted on 2006-06-22 16:03 無聲 閱讀(345) 評論(0)  編輯  收藏 所屬分類: 職場生活
    主站蜘蛛池模板: 亚洲AV噜噜一区二区三区| 亚洲一级毛片在线观| 一区免费在线观看| 免费一级黄色毛片| 免费人人潮人人爽一区二区| 国产99视频免费精品是看6| 亚洲AV无码专区亚洲AV桃| 日韩一级免费视频| 国产精品亚洲一区二区无码 | 国产成人精品日本亚洲直接| 中文免费观看视频网站| 亚洲国产综合在线| 最近中文字幕无免费视频| 亚洲综合色区中文字幕| 精品久久久久久久免费人妻| 免费看一级高潮毛片| 中文字幕精品无码亚洲字| 免费网站观看WWW在线观看| 亚洲αv久久久噜噜噜噜噜| 91麻豆国产免费观看| 亚洲www在线观看| 国产成人免费手机在线观看视频| 免费人成再在线观看网站 | 亚洲熟妇无码AV在线播放| 在线观看肉片AV网站免费| 亚洲欧洲国产综合| 成人免费无码大片a毛片软件| 黄色三级三级三级免费看| 亚洲中文字幕不卡无码| 18pao国产成视频永久免费| 亚洲人成色777777精品| 久久精品国产亚洲Aⅴ蜜臀色欲| 久爱免费观看在线网站| 精品亚洲AV无码一区二区三区| 免费真实播放国产乱子伦| 大地资源中文在线观看免费版 | 美女18毛片免费视频| 亚洲成a人片在线观看无码| 在线a级毛片免费视频| 一级特黄a大片免费| 亚洲精品456在线播放|