基于IntBuffer類(lèi)的基本用法(詳解)
更新時(shí)間:2017年05月26日 08:42:41 投稿:jingxian
下面小編就為大家?guī)?lái)一篇基于IntBuffer類(lèi)的基本用法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
廢話不多說(shuō),直接上代碼
package com.ietree.basicskill.socket.basic.nio;
import java.nio.IntBuffer;
/**
* Created by Administrator on 2017/5/25.
*/
public class BufferTest {
public static void main(String[] args) {
// 1 基本操作
/*//創(chuàng)建指定長(zhǎng)度的緩沖區(qū)
IntBuffer buf = IntBuffer.allocate(10);
buf.put(13);// position位置:0 - > 1
buf.put(21);// position位置:1 - > 2
buf.put(35);// position位置:2 - > 3
//把位置復(fù)位為0,也就是position位置:3 - > 0
buf.flip();
System.out.println("使用flip復(fù)位:" + buf);
System.out.println("容量為: " + buf.capacity()); //容量一旦初始化后不允許改變(warp方法包裹數(shù)組除外)
System.out.println("限制為: " + buf.limit()); //由于只裝載了三個(gè)元素,所以可讀取或者操作的元素為3 則limit=3
System.out.println("獲取下標(biāo)為1的元素:" + buf.get(1));
System.out.println("get(index)方法,position位置不改變:" + buf);
buf.put(1, 4);
System.out.println("put(index, change)方法,position位置不變:" + buf);;
for (int i = 0; i < buf.limit(); i++) {
//調(diào)用get方法會(huì)使其緩沖區(qū)位置(position)向后遞增一位
System.out.print(buf.get() + "\t");
}
System.out.println("buf對(duì)象遍歷之后為: " + buf);*/
// 2 wrap方法使用
// wrap方法會(huì)包裹一個(gè)數(shù)組: 一般這種用法不會(huì)先初始化緩存對(duì)象的長(zhǎng)度,因?yàn)闆](méi)有意義,最后還會(huì)被wrap所包裹的數(shù)組覆蓋掉。
// 并且wrap方法修改緩沖區(qū)對(duì)象的時(shí)候,數(shù)組本身也會(huì)跟著發(fā)生變化。
/*int[] arr = new int[]{1,2,5};
IntBuffer buf1 = IntBuffer.wrap(arr);
System.out.println(buf1);
IntBuffer buf2 = IntBuffer.wrap(arr, 0 , 2);
//這樣使用表示容量為數(shù)組arr的長(zhǎng)度,但是可操作的元素只有實(shí)際進(jìn)入緩存區(qū)的元素長(zhǎng)度
System.out.println(buf2);*/
// 3 其他方法
IntBuffer buf1 = IntBuffer.allocate(10);
int[] arr = new int[]{1,2,5};
buf1.put(arr);
System.out.println(buf1);
//一種復(fù)制方法
IntBuffer buf3 = buf1.duplicate();
System.out.println(buf3);
//設(shè)置buf1的位置屬性
//buf1.position(0);
buf1.flip();
System.out.println(buf1);
System.out.println("可讀數(shù)據(jù)為:" + buf1.remaining());
int[] arr2 = new int[buf1.remaining()];
//將緩沖區(qū)數(shù)據(jù)放入arr2數(shù)組中去
buf1.get(arr2);
for(int i : arr2){
System.out.print(Integer.toString(i) + ",");
}
}
}
以上這篇基于IntBuffer類(lèi)的基本用法(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
JVM垃圾回收機(jī)制和垃圾回收器詳細(xì)解說(shuō)
這篇文章主要介紹了JVM垃圾回收機(jī)制和垃圾回收器,為了讓程序員更加專注于代碼的實(shí)現(xiàn),而不用過(guò)多的考慮內(nèi)存釋放的問(wèn)題,所以在Java語(yǔ)言中,有了自動(dòng)的垃圾回收機(jī)制,也是我們常常提及的GC,需要的朋友可以參考下2022-07-07
SpringBoot @Schedule的使用注意與原理分析
這篇文章主要介紹了SpringBoot @Schedule的使用注意與原理分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Java多線程(單例模式,堵塞隊(duì)列,定時(shí)器)詳解
這篇文章主要介紹了java多線程的(單例模式,堵塞隊(duì)列,定時(shí)器),具有一定參考價(jià)值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下2021-08-08
詳談HashMap和ConcurrentHashMap的區(qū)別(HashMap的底層源碼)
下面小編就為大家?guī)?lái)一篇詳談HashMap和ConcurrentHashMap的區(qū)別(HashMap的底層源碼)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
Springboot2.7+Minio8 實(shí)現(xiàn)大文件分片上傳
本文主要介紹了Springboot2.7+Minio8 實(shí)現(xiàn)大文件分片上傳,通過(guò)文件切片上傳,我們能夠提高文件上傳的速度,優(yōu)化用戶體驗(yàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12

