`
zddava
  • 浏览: 243644 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java.nio.Buffer的一些基础知识的备忘

阅读更多
capacity(): 表明缓冲区的容量大小, 一旦确定了大小, 将不能再改变;
limit(): 告诉您到目前为止已经往缓冲区填了多少字节,或者用#limit(int)来改变这个限制;
position(): 告诉您当前的位置,以执行下一个读/写操作;
mark(): 为了稍后用 reset() 进行重新设置而记住某个位置;
flip(): 交换限制指针和位置指针,然后将位置置为 0,并废弃已经做的mark标记。

缓冲区的基本操作是读#get()和写#put()。

缓冲区类型:
NIO具有7种特定的 Buffer 类型,每种类型对应着一个基本数据类型(除了 boolean)

ByteBuffer       //字节缓冲区
CharBuffer       //字符缓冲区
DoubleBuffer     //double 缓冲区
FloatBuffer      //float 缓冲区
IntBuffer        //int 缓冲区
LongBuffer       //long 缓冲区
ShortBuffer      //short 缓冲区

缓冲区分为直接缓冲区和间接缓冲区,直接缓冲区的创建成本要高于间接缓冲区,但同时它也会提供更快的I/O访问速度。所以直接缓冲区适合那种长期存在的缓冲区,而间接缓冲区则适合于生命周期较短的。还有,要注意,只有ByteBuffer可以创建直接缓冲区。

缓冲区的几个内部状态的改变:
容量(capacity),缓冲区大小
限制(limit),第一个不应被读取或写入的字节的索引,总是小于容量。
位置(position),下一个被读取或写入的字节的索引,总是小于限制。
0 <= position <= limit <= capacity

1. clear()方法:设置limit为capacity,position为0,并丢弃mark。
2. filp()方法:设置limit为当前position,然后设置position为0,并丢弃mark。
3. rewind()方法:保持limit不变,设置position为0,并丢弃mark。
分享到:
评论

相关推荐

    javamianshi.rar_java 试题_java 面试_java 面试题_java面试_面试

    一、Java基础知识 1. 类与对象:理解面向对象编程的基本概念,如封装、继承、多态,并能创建和使用类及对象。 2. 异常处理:掌握如何使用try-catch-finally语句块,以及如何自定义异常。 3. 内存管理:了解Java内存...

    java-programming-chapter-interview.zip_java programming

    《Java编程篇面试宝典》是一份专门为Java程序员准备的面试指南,涵盖了广泛的知识点,旨在帮助求职者在面试中脱颖而出。这份资料的核心是“JAVA面试题集编程篇.pdf”,它整理了Java编程领域的常见问题和解答,为面试...

    2015年腾讯Java工程师笔试题.zip

    一、Java基础知识 1. 类与对象:理解面向对象编程的基本概念,如封装、继承、多态等。熟悉类的定义、构造器的使用,以及对象的生命周期管理。 2. 集合框架:深入理解List、Set、Map三大集合接口,以及ArrayList、...

    Java面试必问.docx.zip

    面试对于求职者来说是展示自身技能和知识的关键环节,而Java面试则更注重候选人的基础理论、编程实践、问题解决能力以及对框架和并发的理解。下面我们将深入探讨Java面试中可能会遇到的重要知识点。 一、Java基础 1...

    JAVA面试题解惑系列.rar

    Java编程语言作为软件开发的重要工具,其面试题涵盖了广泛的领域,包括基础知识、数据结构与算法、多线程、网络编程、异常处理、JVM优化、集合框架、设计模式等。以下是对"JAVA面试题解惑系列"中可能涉及的知识点的...

    【Java面试资料】-(机构内训资料)整理的多家公司Java常见面试题库350道

    这份350道题目的Java面试题库,不仅适合正在寻找工作的开发者,也是提升个人技能、复习Java基础知识的宝贵资源。通过系统学习和实践,可以全面提升对Java技术体系的掌握程度,为解决实际问题打下坚实的基础。

    java后端-面试笔记和面试资料

    2. NIO(New Input/Output):非阻塞I/O,Channel、Buffer、Selector的使用。 3. 文件操作:File类的常用方法,以及复制、删除、重命名文件。 五、反射与注解 1. 反射:Class类的使用,动态创建对象,调用方法,...

    java面试题与技巧

    3. NIO:理解非阻塞I/O的特点,包括Buffer、Channel和Selector的使用。 六、反射与注解 1. 反射:了解Class类的使用,以及动态创建对象和调用方法。 2. 注解:理解注解的元注解,以及自定义注解的实现和使用。 七...

    java面试题库 面试用的

    2. NIO(New IO):掌握Channel、Buffer、Selector等核心概念,了解非阻塞I/O的原理。 五、多线程 1. 线程基础:理解线程的创建方式,包括Thread类和Runnable接口,掌握线程同步机制如synchronized、wait()、notify...

    java面试真题.rar

    Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识领域,包括基础语法、集合框架、多线程、网络编程、设计模式、JVM优化、数据库操作、Spring框架、并发编程等。以下是对2020年阿里巴巴、华为、美团、百度...

    java面试题集一些问题

    Java面试题集是针对求职者准备Java开发职位面试的重要参考资料,涵盖了广泛的Java基础知识和技术要点。以下是一些可能出现在Java面试中的关键知识点: 1. **Java基础** - 类与对象:理解面向对象编程的基本概念,...

    Java各公司面试题

    2. NIO:了解非阻塞I/O模型,如Buffer、Channel和Selector的使用。 七、反射 1. 反射机制:理解反射的用途,如何通过Class类获取对象信息,以及动态调用方法和字段。 2. 注解:了解注解的元数据功能,以及如何...

    Java程序员面试题

    Java程序员在面试过程中可能会遇到各种类型的题目,这些题目旨在评估候选人的基础知识、编程能力、问题解决技巧以及对Java生态系统的理解。以下是对标题"Java程序员面试题"和描述中涉及的知识点的详细解读: 1. **...

    java 企业面试题

    Java企业面试题是Java开发者求职过程中必不可少的准备环节,涵盖了从基础语法到高级设计模式,再到...对于求职者来说,扎实的基础知识和实践经验是成功的关键。通过深入学习和实践,你可以更好地应对各种Java面试挑战。

    java面试题大汇总

    Java面试题大汇总,这是一份集合了众多Java开发者在面试过程中可能会遇到的问题集锦,旨在帮助准备面试的程序员巩固基础知识,提升技能水平。这里我们将深入探讨Java编程语言中的核心概念、高级特性以及常见问题。 ...

    JAVA面试

    JAVA作为一门广泛应用于企业级开发的语言,其面试涉及的知识面非常广泛,包括基础语法、面向对象编程、集合框架、多线程、网络编程、设计模式、JVM内存管理等多个方面。下面我们将详细探讨这些关键知识点。 1. **...

    Java 面试题(按照学习过程复习).zip

    通过深入学习并掌握以上知识点,你将在Java面试中表现出色,不仅能够展示出扎实的技术基础,还能体现出对软件工程的理解和实践能力。记得在复习过程中结合实际项目经验,将理论与实践相结合,提升自己的综合素质。祝...

    自己收集的超全的java笔试题、面试题

    这些知识点构成了Java开发者应具备的基础技能,通过学习和实践这些笔试面试题,可以深入理解Java的核心概念,并为实际工作中的问题解决奠定坚实基础。无论你是初学者还是经验丰富的开发者,这份资源都能帮助你在求职...

    125条常见的java面试笔试题大汇总

    - NIO(非阻塞I/O):Channel、Selector、Buffer 8. **反射**: - 类的加载与实例化 - 获取类信息:Class类的方法 - 动态调用方法和访问字段 - 构造函数、方法和字段的权限检查 9. **设计模式**: - 创建型...

Global site tag (gtag.js) - Google Analytics