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

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

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

    沙漠中的魚

    欲上天堂,先下地獄
    posts - 0, comments - 56, trackbacks - 0, articles - 119
      BlogJava :: 首頁 ::  :: 聯(lián)系 :: 聚合  :: 管理

    Class.forName("Gum");

    forName是取得Class引用的一種方法,返回一個(gè)Class對(duì)象的引用。

    如果Gum類還沒有被加載就加載它,在加載過程中,Gum的靜態(tài)子句被執(zhí)行。

    可能產(chǎn)生的異常:ClassNotFoundException

    Class.getInterfaces("Gum")

    返回對(duì)象是Class類型,表示類Gum包含的接口

    如類Gum implements interface1,

    則會(huì)獲取到interface1的類對(duì)象

    Class.newInstance()

    實(shí)現(xiàn)“虛擬構(gòu)造器”的一種途徑

     

    類字面常量

    obj.Class生成對(duì)Class對(duì)象的引用,它比forName更加安全,因?yàn)樗诰幾g時(shí)就接受檢查。

    注意:當(dāng)使用.Class來創(chuàng)建Class對(duì)象的引用時(shí),不會(huì)自動(dòng)初始化Class對(duì)象。

    class Initable{
        
    static final int staticFinal=47;
        
    static final int staticFinal2=ClassInitialization.rand.nextInt(1000);
        
    static{
            System.out.println(
    "Initialzing Initable");
        }

    }

    class Initable2{
        
    static int staticNonFinal=147;
        
    static{
            System.out.println(
    "Initialzing Initable2");
        }

    }

    class Initable3{
        
    static int staticNonFinal=74;
        
    static{
            System.out.println(
    "Initialzing Initable3");
        }

    }

    public class ClassInitialization {
        
    public static Random rand=new Random(47);
        
    public static void main(String[] args){
            Class initable
    =Initable.class;
            System.out.println(
    "After creating Initable ref");
            System.out.println(Initable.staticFinal);
            System.out.println(Initable.staticFinal2);
            System.out.println(Initable2.staticNonFinal);
            Class initable3
    =Class.forName("Initable3");
            System.out.println(
    "After creating Initable3 ref");
            System.out.println(Initable3.staticNonFinal);
        }

    }

     

    輸出結(jié)果為:

    Initialzing Initable
    After creating Initable ref
    47
    258
    Initialzing Initable2
    147
    Initialzing Initable3
    After creating Initable3 ref
    74

    結(jié)論:如果一個(gè)static final值是"編譯期常量",就象Initable.staticFinal那樣,那么這個(gè)值不需要對(duì)Initable類初使化就可以讀取,但是如果只是將一個(gè)域設(shè)置為static和final的,如對(duì)Initable.staticFinal2的訪問將進(jìn)行強(qiáng)制的初使化,因?yàn)樗皇且粋€(gè)編譯型常量。

    如果一個(gè)static而不是final的,那么在它訪問時(shí),總是要求進(jìn)行鏈接(為這個(gè)域分配存儲(chǔ)空間)和初始化(初始化該存儲(chǔ)空間),就像對(duì)Initable2.staticNonFinal那樣。

    泛化的Class引用

    Class<Integer> iniClass=int.class

    新的轉(zhuǎn)型語法

    case()

    InstanceOf

    反射

    getMethods()返回Method對(duì)象的數(shù)組

    getConstructors()返回Contructor對(duì)象的數(shù)組

    動(dòng)態(tài)代理

    實(shí)現(xiàn)InvocationHandler接口

    public Object invoke(Objct proxy,Method method,Object[] args)throws Throwable{}方法

    通過Proxy.newProxyInstance(ClassLoader,Class[],InvocationHandler)創(chuàng)建動(dòng)態(tài)代理

    具體示例參見:

    http://www.tkk7.com/aoneany/articles/271019.html

    主站蜘蛛池模板: 99精品视频在线观看免费| 亚洲一区二区三区无码中文字幕| 成人网站免费大全日韩国产 | 亚洲色精品VR一区区三区| 久久久青草青青国产亚洲免观 | 成人人观看的免费毛片| 久久久久久国产精品免费免费男同 | 一级做a爰片性色毛片免费网站| 亚洲经典在线观看| 国产成人A亚洲精V品无码| 国产精品成人免费一区二区| 久久永久免费人妻精品| 成在线人视频免费视频 | 国产大片91精品免费看3| 免费看成人AA片无码视频羞羞网| 国产一精品一av一免费爽爽| 免费的黄色的网站| 亚洲熟妇无码AV| 亚洲av片不卡无码久久| 久久亚洲精品成人AV| 国产亚洲日韩一区二区三区| 免费国产一级特黄久久| 午夜色a大片在线观看免费| 在线视频精品免费| 一级成人a毛片免费播放| 日韩a级无码免费视频| 老司机精品免费视频| 免费人成动漫在线播放r18| 亚洲av无码无线在线观看| 亚洲看片无码在线视频| 亚洲中文无码av永久| 亚洲不卡在线观看| 亚洲三级高清免费| 亚洲色大网站WWW永久网站| 亚洲精品国产精品国自产网站 | 性xxxx视频免费播放直播 | 亚洲国产精品白丝在线观看| 久久久久亚洲AV无码网站| 亚洲国产综合人成综合网站00| 亚洲国产精品综合一区在线| 最新国产成人亚洲精品影院|