熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

java高級技術總結 1

2013-11-23 18:47:59  來源: Java核心技術 
    eclipse   大型開發的集成軟件應用最廣安裝myeclipse之後功能更強主要有工作區工程兩個概念
    工程將很多有關聯的java文件放到同一個工程中這樣這些java文件就可以同時執行大大提高效率
    同時應該多主要eclipse的開發小技巧可以大大節省時間
    靜態導入
    import static javalangMath*;這樣就可以直接調用Math中的靜態方法如max(如果不導入就要寫成Mathmax(
    高級for循環
    for(Object obj : array) {  代碼塊}
    其中array為Object類型數組或者集合這樣就可以實現數組或集合的遍歷
    枚舉(enum)
    可以看成一個包含很多元素的類如public enum WeekDay{ SUNMONTUE}
    對於其中元素可以直接引用WeekDaySUN
    幾個重點方法WeekDayvalueOf(SUN)就是獲得一個WeekDay元素實例SUN
    ***枚舉類中構造方法必須private化所以可用於單例設計模式
    可變參數(jdk新特性重點)
    public static int plus (int xint … args)    //加…表示不確定
    {
    int sum = ;
    for(i=;i<argslength;i++)     //參數被放入數組中
    {
    sum+=args[i];
    }
    return sum;
    }
    這樣就可以隨便調用了plus(plus()……都可以
    基本數據的知道裝修及拆箱(jdk新特性)
    如  Integer i = ;
    實際上執行上面那句代碼的時候系統為我們執行了Integer i = new Integer( 此即基本數據類型的自動裝箱
    享源模式運用共享技術有效地支持大量細粒度的對象
    概念也就是說在一個系統中如果有多個相同的對象那麼只共享一份就可以了不必每個都去實例化一個對象比如說一個文本系統每個字母定一個對象那麼大小寫字母一共就是那麼就要定義個對象如果有一個M的文本那麼字母是何其的多如果每個字母都定義一個對象那麼內存早就爆了那麼如果要是每個字母都共享一個對象那麼就大大節約了資源
    在Flyweight模式中由於要產生各種各樣的對象所以在Flyweight(享元)模式中常出現Factory模式Flyweight的內部狀態是用來共享的Flyweight factory負責維護一個對象存儲池(Flyweight Pool)來存放內部狀態的對象Flyweight模式是一個提高程序效率和性能的模式會大大加快程序的運行速度應用場合很多
    反射
    實質把類中各成分映射成相應java類如成員變量成員方法構造方法main方法
    用Class類來代指這類事物主要與class的區別class只是一個修飾語Class就是具體的類本質是字節碼
    獲取Class字節碼的方法
    類名class如intclassStringclassIntegerclass
    getClass() 如String str  = asd; strgetClass()
    ClassforName(類名
    Class的幾個重要方法isPrimitive()是否為基本數據類型
    一構造方法的反射getConstructor(parameter(typeclass) ; getConstructors()(獲得的是構造方法數組)
    如Constructor constructor = StringclassgetConstructor(StringBufferclass)
    String str = (String)connstructornewInstance(new StringBuffer(ades))
    其中newInstance(parametertype)是最重要的方法可以直接獲得所屬類的實例對象


    二成員變量的反射Field:
    class Point  p {int x=;int y =;}
    Field fieldx = pgetClass()getField(x
    Systemoutprintln(fieldxget(p)) 即可得到p中x的值
    三成員方法的反射
    必須導入javalangreflect*;包治好才能使用
    String str = dafsf
    Method methodCharAt = StringclassgetMethod(charAtintclass)
    Systemoutprintln(methodCharAtinvoke(str))
    方法的反射是最能 體現反射的意思的即以方法為中心原來作用的類和參數都作為該方法的參數
    四main方法的反射
    package combaiduexam;
    import javalangreflectMethod;
    class Point {
    public static void main(String[]args)throws Exception
    {
    String name = args[];
    Method mainMethod = ClassforName(name)getMethod(main String[]class)
    mainMethodinvoke(null (Object)new String[]{eAWDRrgsfegs})    //此時強制轉換特別重要
    }
    }
    class Hello
    {
    public static void main(String[]args) {
    for(String str:args){
    Systemoutprintln(str)
    }
    }
    }
    將main方法發射的實例
    五數組的反射
    有一個關於數組反射的工具類Array在javalangreflect包中
    關鍵方法Arrayget(Object [] obj int i)得到obj數組中第i個元素i的值


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25752.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.