日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ByteBuffer

發布時間:2024/4/17 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ByteBuffer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

runtime data area

1.method area(共享) 2.heap (共享) 3.java stack(非) 4.native method stack(非) 5.program couter register(非)method frame(stack frame)

從heap角度

1.heap //young gen(eden + survivor0 + survivor 2) + old gen. 2.non-heapperm | metaspace 3.off-heapjvm之外的內容

jvm調優

-Xmx -Xms -Xmn //young -XX:NewSize= -XX:MaxNewSize=

java -Xmx xx.x.xx.App

反射

動態訪問對象的屬性和方法。 Class //類 Method //方法,成員函數 Field //字段,成員變量 Constructor //構造函數private

Field[] fs = getDeclaredFields() for(Field f : fs){ get + "" }

內省

Introspector. 操作javabean。

設計模式

單例(無狀態) 池化模式(無狀態) 裝飾 適配器 builder factory 代理模式.

反射技術.

Introspector: //JavaBean動態訪問對象屬性和方法。 Class // Method // Field // Constructor //

IO

InputStream //read OuputStream //writeReader // Writer //字符流BufferedInpustStream // BufferedOutputStream //BufferedReader BufferedWriterInputStreamReader ObjectInputStream ObjectOutputStreamByteArrayInputStream ByteArrayOutputStream

NIO:New IO

ServerSocket ss = new ServerSocket(8888); //阻塞的 while(true){Socket s = ss.accept();InputStream is = s.getInputStream();//阻塞的while(true){is.read(buf);}... }

NIO : java.nio.Buffer

[java.nio.Buffer] 容器,線性的,有限的. Capacity //容量 limit //限制 position //指針位置 mark //記號(標記)//分配字節緩沖區 ByteBuffer buf = ByteBuffer.allocate(20); // ByteBuffer buf = ByteBuffer.allocateDirect(20); //直接內存(離堆)java.nio.ByteBuffer/\|--------------java.nio.HeapByteBuffer //堆內存區|--------------java.nio.DirectByteBuffer //離堆內存區.get() //讀put() //寫position() //取出指針位置position(int ) //設置指針新位置limit() //設置指針新位置limit(int l) //設置新limitflip() //0 <= mark <= position <= limit <= capacity

GC

garbage collection,垃圾回收。 對象回收的條件:沒有任何一個指針能夠直接或間接達到的話,就回收了。 Person p = new Person(); Person p2 = p ; p = null ;List<Person> list = new ArrayList<Person>(); list.add(p2); p2 = null ;list.clear();

ByteBuffer.flip()

java.nio.ByteBuffer中flip、rewind、clear方法的區別

對緩沖區的讀寫操作首先要知道緩沖區的下限、上限和當前位置。下面這些變量的值對Buffer類中的某些操作有著至關重要的作用:

1. limit:所有對Buffer讀寫操作都會以limit變量的值作為上限。

2. position:代表對緩沖區進行讀寫時,當前游標的位置。

3. capacity:代表緩沖區的最大容量(一般新建一個緩沖區的時候,limit的值和capacity的值默認是相等的)。

flip、rewind、clear這三個方法便是用來設置這些值的。

clear方法 public final Buffer clear() {position = 0; //重置當前讀寫位置limit = capacity; mark = -1; //取消標記return this; }

clear方法將緩沖區清空,一般是在重新寫緩沖區時調用。

flip方法

public final Buffer flip() {limit = position;position = 0;mark = -1;return this; }

反轉緩沖區。首先將限制設置為當前位置,然后將位置設置為 0。如果已定義了標記,則丟棄該標記。 常與compact方法一起使用。通常情況下,在準備從緩沖區中讀取數據時調用flip方法。

rewind方法

1public final Buffer rewind() { 2 position = 0; 3 mark = -1; 4 return this; 5}

轉載于:https://www.cnblogs.com/yihaifutai/p/6787468.html

總結

以上是生活随笔為你收集整理的ByteBuffer的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。