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

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

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

    bitbit

     

    2009年11月30日

    Java 6 JVM參數選項大全(中文版)

         摘要: 本文是基于最新的SUN官方文檔Java SE 6 Hotspot VM Options 編寫的譯文。主要介紹JVM中的非穩態選項及其使用說明。 為了讓讀者明白每個選項的含義,作者在原文基礎上補充了大量的資料。 因為是初稿,如有描述錯誤,敬請指正。   非穩態選項使用說明 -XX:+<option> 啟用option -XX:-<optio...  閱讀全文

    posted @ 2009-11-30 13:27 bt,bt.bt| 編輯 收藏

    2009年11月27日

    java資源獲取分析

    在開發java程序的過程中,我們經常要做的一件事就是獲取資源。那么什么是資源呢?說白了,在計算機里那就是一堆數據。只是這堆數據對我們的java程序有多種表現形式,一般來說有File,URL,InputStream等等。而單就文件這一項就有很多種:配置文件,java類文件,jps文件,圖片、css、js文件等等。面對這林林總總的資源,我們在設計一個讀取資源的接口時,就需要針對不同形式的資源提供方法,這樣就導致我們的接口還是與實際的資源形式綁定在一起,未能完全的抽象。另外,在java程序中資源的存放位置也是各異的。有的存放在classpath中,有的存放在文件系統中,有的存放在web應用中。而對于不同位置的資源,java程序獲取這些資源的方法各有不同。 
    A、獲取classpath中的資源: 
    Java代碼 
    URL url = this.getClass().getResource("resource_name");  
    URL url = this.getClass().getClassLoader().getResource("resource_name");  
    URL url = Thread.currentThread().getContextClassLoader().getResource("resource_name");  
    甜性澀愛下載 http://www.bt285.cn/content.php?id=1196863 
    那么在jdk中為什么又提供了三種方式來獲取classpath下的資源呢?這其中是有些來頭的。 
    第一行代碼中是利用Class類的實例來獲取,第二行代碼是使用加載當前類的classloader來獲取。看下jdk中的源代碼會發現class類的實例最后還是委托加載他的classloader來獲取資源的。 
    Java代碼 
    /** 
    * 色即是空2下載  http://www.bt285.cn/sejishikong/ 
    愛的色放下載 http://www.bt285.cn/aidesefang/ 
    */ 
    public java.net.URL getResource(String name) {  
        name = resolveName(name);  
        ClassLoader cl = getClassLoader0();  
        if (cl==null) {  
            // A system class.  
            return ClassLoader.getSystemResource(name);  
        }  
        return cl.getResource(name);  
     

    從上面的代碼中可以看出,對于資源的加載并沒有像類加載所采用的雙親委托機制。而是當前類的classloader不為null的情況下先從當前類的classloader中加載資源。而只有當前類的classloader為null的時候才從system classloader中去加載資源。這樣可以方便我們自定義配置類覆蓋一些默認配置。當然,j2se應用中如果沒有特別定制classloader時,我們自己寫的類都是被system classloader加載的。到底利用class去獲取資源和利用classloader去獲取資源有什么區別呢?區別就在 resolveName(name)這個方法中。兩種方式對于資源名稱的表示方式不同。下面是一個簡單的包結構,/表示類路徑的根 
    / 
    |-com.cn.test 
       |-Test.class 
       |-test2.txt  
    |-test1.txt 
    Java代碼 
    // 獲取與當前類在同一個包下的資源  
    URL url1 = this.getClass().getResource("test2.txt");  
    // 獲取com.cn.test包下的資源,需加/  
    URL url2 = this.getClass().getResource("/com/cn/test/test2.txt");  
    // 獲取類路徑根下的資源  
    URL url3 = this.getClass().getClassLoader().getResource("test1.txt");  
    // 獲取包com.cn.test包下的資源  
    URL url4 = this.getClass().getResource("com/cn/test/test2.txt");  

    而第三利用當前線程的contextClassLoader來獲取資源的解釋可以參考我的另一篇 
    B、獲取文件系統中的資源 
    Java代碼 
    // 1、獲得File對象  
    File file = new File("test.txt");  
    // 2、獲得File對象的字節流  
    InputStream in = new FileInputStream(file);  

    值得注意的是在File的構造函數File(String name) 中的name參數可以是相對路徑和絕對路徑。相對路徑是相對于System.getProperties("user.dir")的。 
    C、獲取web應用中的資源 
    Java代碼 
    servletContext.getResourceAsStream(resource_name);  

    resource_names為相對于webroot的路徑表示。例如獲取web.xml,resource_name表示為"/WEB-INF/web.xml" 

        面對上面介紹的各種資源表現形式和存放位置,難道java中就沒有提供一個統一處理方式嗎?有,java.net.URL。 
    從名稱上來看 URL(Uniform Resource Locator) 統一資源定位器。看起來很好很強大。但很多時候使用它并不能定位到我們需要的資源。 
        首先,它jdk中體統的URL能訪問的協議非常有限(當然可以進行擴展,不過很麻煩);常用的有http,file,ftp等等。并沒有提供對classpath和servletContext中的資源的獲取方法。 
        另外,它沒有提供判斷資源是否存在的方法。每次只有等我們真正去獲取資源的時候拋出異常才能知道資源無法獲取。 
        其次,URL這個類的職責未劃分清楚,既用來表示資源有用來獲取其資源。 

    posted @ 2009-11-27 16:33 bt,bt.bt| 編輯 收藏

    僅列出標題  

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆檔案

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产亚洲综合在线尤物| 久久精品国产96精品亚洲| 久久久久精品国产亚洲AV无码| 国产一级片免费看| 亚洲精品无码专区久久久| 99精品视频在线观看免费| 亚洲高清专区日韩精品| 久久99免费视频| 亚洲人成电影福利在线播放| 日本人成在线视频免费播放| 亚洲天堂中文资源| 免费观看美女用震蛋喷水的视频 | 亚洲人xxx日本人18| 色窝窝免费一区二区三区| 精品国产成人亚洲午夜福利| 天天摸天天操免费播放小视频| 亚洲国产成人久久精品大牛影视| 精品国产一区二区三区免费看| 免费人成大片在线观看播放电影| 国内精品99亚洲免费高清| 波多野结衣免费一区视频| 亚洲成人网在线观看| 精品久久久久久久免费加勒比| 高h视频在线免费观看| 亚洲国产精品一区第二页| aⅴ在线免费观看| 亚洲成熟丰满熟妇高潮XXXXX | 黄页网站在线观看免费高清| 亚洲av日韩av永久在线观看| 免费99热在线观看| a级成人毛片免费视频高清| 亚洲永久中文字幕在线| 国产小视频在线观看免费| 成人无码区免费A∨直播| 亚洲性色高清完整版在线观看| 国产成人免费a在线资源| 97在线免费视频| 亚洲中文字幕无码中文字| 亚洲色婷婷一区二区三区| 成人免费毛片内射美女-百度| 一区二区三区免费在线视频|