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

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

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

    yeshucheng
    追逐自己,追逐方向,心隨悟所動
    posts - 24,comments - 24,trackbacks - 0
     

    數據對于輸入和輸出的操作耗時是非常嚴重的問題,如果把這個問題放入到網絡上去看待更甚是值得注意的一個問題了。假如結合基礎的OS知識我們也知道如果要減少這種I/O操作的耗時或者也可以說提升這種效率的話,最大的可能就是減少物理讀寫的次數,而且盡可能做到主存數據的重讀性(操作系統也在加強說明更多減少抖動現象的產生)。

    java.nio包中我們可以直接來操作相對應的API了。可以讓java更加方便的直接控制和運用緩沖區。緩沖區有幾個需要了解的特定概念需要詳盡來解釋,才能更好的知道我們下面一些列需要針對的問題實質。

    屬性

    容量(capacity):顧名思義就是表示緩沖區中可以保存多少數據;

    極限(limit):緩沖區中的當前數據終結點。不過它是可以動態改變的,這樣做的好處也是充分利用重用性;

    位置(position):這個也好理解,其實就是指明下一個需要讀寫數據的位置。

    上面上個關系還可以具體用圖示的方式來表達整體概念,如下圖所示:


    在極限的時候就說到可以修改它,所以對于它的操作由以下方法:

    l         clear():首先把極限設置為容量,再者就是需要把位置設置為0

    l         flip():把極限設置為位置區,再者就是需要把位置設置為0

    l         rewind():不改變極限,不過還是需要把位置設置為0

    最為最基礎的緩沖區ByteBuffer,它存放的數據單元是字節。首先要強調的是ByteBuffer沒有提供公開的構造方法,只是提供了兩個靜態的工廠方法。

    l         allocate(int capacity):返回一個ByteBuffer對象,參數表示緩沖區容量大小。

    l         allocateDirect (int capacity):返回一個ByteBuffer對象,參數也是一樣表示緩沖區容量大小。

    在這里需要注意的是在使用兩者的時候需要特別小心,allocateDirect和當前操作系統聯系的非常緊密,它牽涉到使用native method的方法,大家知道一旦本地方法就是需要考慮調用dll(動態鏈接庫)這個時候基本也就失去了JAVA語言的特性,言外之意對于耗資源非常大。所以如果考慮到當前使用的緩存區比較龐大而且是一個長期駐留使用的,這個時候可以考慮使用它。

    posted on 2009-02-13 20:56 葉澍成 閱讀(244) 評論(0)  編輯  收藏 所屬分類: java基礎NIO學習
    主站蜘蛛池模板: 日本在线高清免费爱做网站| 91av免费在线视频| 亚洲免费视频播放| 亚洲乱亚洲乱淫久久| 成人A片产无码免费视频在线观看| 久久亚洲色一区二区三区| 黄色一级视频免费观看| 免费国产在线观看| 免费一区二区三区在线视频| 免费一级特黄特色大片在线| 人人爽人人爽人人片A免费| 久久精品国产精品亚洲| 日本不卡免费新一区二区三区| 亚洲人成依人成综合网| 免费AA片少妇人AA片直播 | 一二三四免费观看在线视频中文版 | 国产免费丝袜调教视频| 亚洲高清视频在线| 国产自产拍精品视频免费看| 西西人体大胆免费视频| 亚洲狠狠婷婷综合久久久久| 91精品导航在线网址免费| 久久精品国产亚洲αv忘忧草| 日本xxwwxxww在线视频免费 | 青草青草视频2免费观看| 亚洲一区二区三区在线观看精品中文| 永久免费AV无码网站国产| 亚洲高清视频在线播放| 女人18毛片水真多免费播放| 国产亚洲Av综合人人澡精品| 亚洲日韩精品一区二区三区无码 | 免费无码不卡视频在线观看| 国产产在线精品亚洲AAVV| 亚洲精品无码av人在线观看 | 日韩免费三级电影| a级毛片毛片免费观看久潮喷| 亚洲精品在线免费观看视频| 国产成人啪精品视频免费网| 成人免费区一区二区三区| 亚洲中文无码永久免| 亚洲精品蜜桃久久久久久|