IntBuffer类的基本用法

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 基本操作
         /*//创建指定长度的缓冲区
         IntBuffer buf = IntBuffer.allocate(10);
         buf.put(13);// position位置:0 - > 1
         buf.put(21);// position位置:1 - > 2
         buf.put(35);// position位置:2 - > 3
         //把位置复位为0,也就是position位置:3 - > 0
         buf.flip();
         System.out.println("使用flip复位:" + buf);
         System.out.println("容量为: " + buf.capacity());    //容量一旦初始化后不允许改变(warp方法包裹数组除外)
         System.out.println("限制为: " + buf.limit());        //由于只装载了三个元素,所以可读取或者操作的元素为3 则limit=3

         System.out.println("获取下标为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++) {
             //调用get方法会使其缓冲区位置(position)向后递增一位
             System.out.print(buf.get() + "\t");
         }
         System.out.println("buf对象遍历之后为: " + buf);*/

         // 2 wrap方法使用
         //  wrap方法会包裹一个数组: 一般这种用法不会先初始化缓存对象的长度,因为没有意义,最后还会被wrap所包裹的数组覆盖掉。
         //  并且wrap方法修改缓冲区对象的时候,数组本身也会跟着发生变化。
         /*int[] arr = new int[]{1,2,5};
         IntBuffer buf1 = IntBuffer.wrap(arr);
         System.out.println(buf1);

         IntBuffer buf2 = IntBuffer.wrap(arr, 0 , 2);
         //这样使用表示容量为数组arr的长度,但是可操作的元素只有实际进入缓存区的元素长度
         System.out.println(buf2);*/

         // 3 其他方法
         IntBuffer buf1 = IntBuffer.allocate(10);
         int[] arr = new int[]{1,2,5};
         buf1.put(arr);
         System.out.println(buf1);
         //一种复制方法
         IntBuffer buf3 = buf1.duplicate();
         System.out.println(buf3);

         //设置buf1的位置属性
         //buf1.position(0);
         buf1.flip();
         System.out.println(buf1);

         System.out.println("可读数据为:" + buf1.remaining());

         int[] arr2 = new int[buf1.remaining()];
         //将缓冲区数据放入arr2数组中去
         buf1.get(arr2);
         for(int i : arr2){
            System.out.print(Integer.toString(i) + ",");
         }

    }
}
时间: 2024-11-02 04:55:00

IntBuffer类的基本用法的相关文章

&lt;04&gt;【掌握】14-NSString 类介绍及用法+【掌握】15-NSString 字符串长度计算方法

[掌握]14-NSString 类介绍及用法 下面介绍了四种字符串书写格式 第二种是本质,第一种是特殊的写法,一定要熟练:第三种(这个格式化输出也很常见)和第四种先放一放 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //NSString 是OC中字符串处理的类 //1.创建一个字符串(1) NSString *s = @"banzhang

实例讲解ThinkPHP的UploadFile文件上传类的详细用法

ThinkPHP文件上传自带了上传类,使用起来非常方便,我们将以一个文件上传实例来讲解ThinkPHP上传类的实际用法,上传类使用时有详细的中文注释,可以非常方便的告诉你类的一些方法或变量的使用方法.FileAction.class.php PHP Code复制内容到剪贴板 <?php class FileAction extends Action{ function index(){ $file=M('file'); $list=$file->select(); $this->assi

Java中File类的基本用法

File类的基本用法 java.io.File类:代表文件和目录.在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到此类. File类的常用构造方法:public File(String pathname) 以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储. 文件的创建 import java.io.File; import java.io.IOException; public class Test {

java File类的常见用法

File类简单用法! [java] view plain copy print? [java] view plain copy print? import java.io.File; import java.io.IOException; public class TestFile { public void createFile(String path){ File file=new File(path); if(!file.exists()){//判断文件是否存在 try { file.cr

Java Enum类语法和用法解析

一.语法 1. Enum的全称为enumeration,中文俗称枚举类,学过C/C++等语言的人,应该都对它略知一二. 但在Java语言规范中,是在JDK 5版本中才引入的,存放在 java.lang 包中.在Java版的Enum实质是语法糖,其声明方式如下: 1 package felix.fu 2 public enum Color{ 3 RED, 4 BLUE, 5 BLACK, 6 YELLOW, 7 GREEN 8 } enum是用来声明枚举的关键字,声明定义的类都隐含继承了一个父类(

ThreadLocal类的实现用法

ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量).也许把它命名为ThreadLocalVar更加合适.线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突. 从线程的角度看,每个线程都保持一个对其线程局部变量副本

String类的基本用法与注意点,StringBuffer类的用法

package cn.hncu.day8; public class RegExpDemo { public static void main(String[] args) { String str ="011-12345678"; boolean boo = str.matches("0\\d{2}-\\d{8}"); System.out.println(boo);//true str ="110-12345678"; boo = str.m

类python中高级用法

1. __call__用法 class Foo: def __init__(self): print('init') def __call__(self, *args, **kwargs): print('call') # obj = Foo() # obj() Foo()() 类对象后面加()是执行类中的__call__方法.用处稍后说 2. __int__和__str__方法 class Foo: def __init__(self): pass def __int__(self): ret

NSString类的相关用法

一.NSString字符串连接NSString* string; // 结果字符串 NSString* string1, string2; //已存在的字符串 1. string = [NSString initWithFormat:@"%@,%@", string1, string2 ];2. string = [string1 stringByAppendingString:string2];</p>3 . string = [string stringByAppend