• <em id="pai5d"></em><sup id="pai5d"></sup>
    
    

    <small id="pai5d"><rp id="pai5d"></rp></small>
    <option id="pai5d"></option>

    
    
  • <sup id="pai5d"></sup>
    <em id="pai5d"><label id="pai5d"></label></em>

  • <s id="pai5d"></s>
    當前位置 : 首頁(yè)  編程語(yǔ)言與程序設計 

    java核心技術(shù)卷1排行榜

    排名
    熱賣(mài)商品
    熱門(mén)點(diǎn)評曬單
    TOP
    1
    TOP
    5
    如果覆蓋findClass或loadClass,getSystemClassLoader能以實(shí)際的ClassLoader對象來(lái)訪(fǎng)問(wèn)系統ClassLoader(而不是固定地從findSystemClass調用它)。為了將類(lèi)請求委托給父類(lèi)ClassLoader,這個(gè)新方法允許ClassLoader獲取它的父類(lèi)ClassLoader。當使用特殊方法,定制的ClassLoader不能找到類(lèi)時(shí),可以使用這種方法。   父類(lèi)ClassLoader被定義成創(chuàng )建該ClassLoader所包含代碼的對象的ClassLoader。   8)forName方法。   Class類(lèi)中有一個(gè)靜態(tài)方法forName,這個(gè)方法和ClassLoader中的loadClass方法的目的一樣,都是用來(lái)加載class的,但是兩者在作用上卻有所區別。   Classclazz=Class.forName(""something"");   或者   ClassLoadercl=Thread.currentThread().getContextClassLoader();   Classclazz=cl.loadClass(""something"");   Class.forName()調用Class.forName(name,initialize,loader);也就是Class.forName(""something"");等同于Class.forName(""something"",true,CALLCLASS.class.getClassLoader());   第二個(gè)參數“true”是用于設置加載類(lèi)的時(shí)候是否連接該類(lèi),true就連接,否則就不連接。關(guān)于連接,在此解釋一下,在JVM加載類(lèi)的時(shí)候,需要經(jīng)過(guò)三個(gè)步驟:裝載、連接、初始化。裝載就是找到相應的class文件,讀入JVM;初始化就是class文件初始化。這里詳述一下連接,連接分三步。   第一步是驗證class是否符合規格。   第二步是準備,就是為類(lèi)變量分配內存的同時(shí)設置默認初始值。   第三步就是解釋?zhuān)@步是可選的,根據上面loadClass方法的第二個(gè)參數來(lái)判定是否需要解釋?zhuān)@里的解釋是指根據類(lèi)中的符號引用查找相應的實(shí)體,再把符號引用替換成一個(gè)直接引用的過(guò)程。   在JavaAPI文檔中,loadClass方法的定義是protected,也就是說(shuō),該方法是被保護的,而用戶(hù)使用的方法是一個(gè)參數,一個(gè)參數的loadClass方法實(shí)際上就是調用了兩個(gè)參數,第二個(gè)參數默認為false。因此,在這里可以看出通過(guò)loadClass加載類(lèi)實(shí)際上就是加載的時(shí)候并不對該類(lèi)進(jìn)行解釋?zhuān)虼瞬粫?huì )初始化該類(lèi)。而Class類(lèi)的forName方法則相反,使用forName加載的時(shí)候就會(huì )將Class進(jìn)行解釋和初始化。   面試例題2:WhichcharactersdoesJVMuse(JVM使用哪種字符表示)?()   A.ASCIIcharactersB.Unicodecharacters   C.Cp1252D.UTF-8   解析:JVM的設計者當初決定JVM中所有字符的表示形式時(shí),是不允許使用各種編碼方式的字符并存的。這是因為如果在內存中的Java字符可以以GB2312、UTF-16、BIG5等各種編碼形式存在,那么對開(kāi)發(fā)者來(lái)說(shuō),連進(jìn)行最基本的字符串打印、連接等操作都會(huì )寸步難行。例如,一個(gè)GB2312的字符串后面連接一個(gè)UTF-8的字符串,那么連接后的最終結果應該是什么編碼呢?選哪一個(gè)都沒(méi)有道理。   Java開(kāi)發(fā)者必須牢記:在Java中字符只以一種形式存在,那就是Unicode(不選擇任何特定的編碼,直接使用它們在字符集中的編號,這是統一的唯一方法)。   但“在Java中”到底是指在哪里呢?是指在JVM中、在內存中、在你的代碼里聲明的每一個(gè)char、String類(lèi)型的變量中。例如,你在程序中這樣寫(xiě):   charhan='永';   在內存的相應區域,這個(gè)字符就表示為0x6c38,可以用下面的代碼證明:   charhan='永';   System.out.format(""%x"",(short)han);   輸出是:6c38。反過(guò)來(lái)用Unicode編號來(lái)指定一個(gè)字符也可以,像這樣:   charhan=0x6c38;   System.out.println(han);   輸出是:永。   這其實(shí)也是說(shuō),只要你正確地讀入了“永”字,那么它在內存中的表示形式一定是0x6c38,沒(méi)有任何其他的值能代表這個(gè)字。   JVM的這種約定使得一個(gè)字符分為兩部分:JVM內部和OS的文件系統。在JVM內部,統一使用Unicode表示,當這個(gè)字符被從JVM內部移到外部(即保存為文件系統中的一個(gè)文件的內容時(shí)),就進(jìn)行了編碼轉換,使用了具體的編碼方案。因此可以說(shuō),所有的編碼轉換只發(fā)生在邊界的地方,JVM和OS的交界處,也就是各種輸入/輸出流(或者Reader,Writer類(lèi))起作用的地方。
    Java核心技術(shù)卷1:基礎知識(第9版·英文版)(套裝上下冊)(異步圖書(shū)出品) 曬單實(shí)拍圖
    品類(lèi)齊全,輕松購物 多倉直發(fā),極速配送 正品行貨,精致服務(wù) 天天低價(jià),暢選無(wú)憂(yōu)
    購物指南
    購物流程
    會(huì )員介紹
    生活旅行/團購
    常見(jiàn)問(wèn)題
    大家電
    聯(lián)系客服
    配送方式
    上門(mén)自提
    211限時(shí)達
    配送服務(wù)查詢(xún)
    配送費收取標準
    海外配送
    支付方式
    貨到付款
    在線(xiàn)支付
    分期付款
    郵局匯款
    公司轉賬
    售后服務(wù)
    售后政策
    價(jià)格保護
    退款說(shuō)明
    返修/退換貨
    取消訂單
    特色服務(wù)
    奪寶島
    DIY裝機
    延保服務(wù)
    京東E卡
    京東通信
    京東JD+
    亚洲精品乱码久久久97_国产伦子一区二区三区_久久99精品久久久欧美_天天看片永久av影城网页
  • <em id="pai5d"></em><sup id="pai5d"></sup>
    
    

    <small id="pai5d"><rp id="pai5d"></rp></small>
    <option id="pai5d"></option>

    
    
  • <sup id="pai5d"></sup>
    <em id="pai5d"><label id="pai5d"></label></em>

  • <s id="pai5d"></s>