Java-API简析_java.nio.CharBuffer类(基于 Latest JDK)(浅析源码)

CharBuffer是Java中用于处理字符序列的抽象类,提供了读写字符、批量操作、压缩、复制和切片等方法。文章列出了CharBuffer的关键方法,如allocate(),append(),compact(),duplicate(),isDirect()等,并介绍了字符缓冲区的直接和非直接特性。
摘要由CSDN通过智能技术生成

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/131318474
出自【进步*于辰的博客

1、概述

继承关系:

  • java.lang.Object
    • java.nio.Buffer
      • java.nio.CharBuffer

所有已实现的接口:
AppendableCharSequenceComparable<CharBuffer>Readable


public abstract class CharBuffer extends Buffer implements Comparable<CharBuffer>, Appendable, CharSequence, Readable

字符缓冲区。

此类定义了字符缓冲区上的四类操作:

  • 读写单个字符绝对相对 get()put() 方法;
  • 将此缓冲区中的连续字符序列 传输到数组中的相对批量 get() 方法;
  • 字符数组字符串其他字符缓冲区中的连续字符序列 传输到此缓冲区的相对批量 put() 方法;以及字符缓冲区的 compacting()duplicating()slicing() 方法。

字符缓冲区可以通过 allocation() 方法创建,此方法通过 wrapping 将一个现有字符数组字符串 包装到缓冲区中来为缓冲区内容分配空间,或者通过创建现有字节缓冲区视图来创建。

像字节缓冲区一样,字符缓冲区要么是直接 的,要么是非直接 的。通过此类的 wrap() 方法创建的字符缓冲区将是非直接的。当且仅当字节缓冲区本身为直接时,作为字节缓冲区的视图创建的字符缓冲区才是直接的。通过调用 isDirect() 方法可以确定字符缓冲区是否为直接的。

此类实现 CharSequence 接口,以便字符缓冲区可以用于任何接受字符序列的地方,例如,在正则表达式包 java.util.regex 中。

指定此类中不返回其他值的那些方法返回它们被调用时所在的缓冲区。这允许对方法调用进行链接。例如,语句序列 :

cb.put("text/");
cb.put(subtype);
cb.put("; charset=");
cb.put(enc);

可以由以下单个语句替换

cb.put("text/").put(subtype).put("; charset=").put(enc);

从以下版本开始:
1.4

2、方法摘要

2.1 static CharBuffer allocate(int capacity)

分配新的字符缓冲区。

2.2 CharBuffer append(char c)

将指定字符追加到此缓冲区(可选操作)。

2.3 CharBuffer append(CharSequence csq)

将指定的字符序列追加到此缓冲区(可选操作)。

2.4 CharBuffer append(CharSequence csq, int start, int end)

将指定字符序列的子序列追加到此缓冲区(可选操作)。

2.5 char[] array()

返回实现此缓冲区的字符数组(可选操作)。

2.6 int arrayOffset()

返回此缓冲区中的第一个元素在缓冲区的底层实现数组中的偏移量(可选操作)。

2.7 abstract CharBuffer asReadOnlyBuffer()

创建共享此缓冲区内容的新的只读字符缓冲区。

2.8 char charAt(int index)

读取相对于当前位置的给定索引处的字符。

2.9 abstract CharBuffer compact()

压缩此缓冲区(可选操作)。

2.10 int compareTo(CharBuffer that)

将此缓冲区与另一个缓冲区进行比较。

2.11 abstract CharBuffer duplicate()

创建共享此缓冲区内容的新的字符缓冲区。

2.12 boolean equals(Object ob)

判断此缓冲区是否与另一个对象相同。

2.13 abstract char get()

相对 get() 方法。

2.14 CharBuffer get(char[] dst)

相对批量 get() 方法。

2.15 CharBuffer get(char[] dst, int offset, int length)

相对批量 get() 方法。

2.16 abstract char get(int index)

绝对 get() 方法。

2.17 boolean hasArray()

判断该缓冲区是否可通过一个可访问的字符数组实现。

2.18 int hashCode()

返回此缓冲区的当前哈希码。

2.19 abstract boolean isDirect()

判断此字符缓冲区是否为直接的。

2.20 int length()

返回此字符缓冲区的长度。

2.21 abstract ByteOrder order()

检索此缓冲区的字节顺序。

2.22 abstract CharBuffer put(char c)

相对 put() 方法(可选操作)。

2.23 CharBuffer put(char[] src)

相对批量 put() 方法(可选操作)。

2.24 CharBuffer put(char[] src, int offset, int length)

相对批量 put() 方法(可选操作)。

2.25 CharBuffer put(CharBuffer src)

相对批量 put() 方法(可选操作)。

2.26 CharBuffer put(int index, char c)

绝对 put() 方法(可选操作)。

2.27 CharBuffer put(String src)

相对批量 put() 方法(可选操作)。

2.28 CharBuffer put(String src, int start, int end)

相对批量 put() 方法(可选操作)。

2.29 int read(CharBuffer target)

试图将字符读入指定的字符缓冲区。

2.30 abstract CharBuffer slice()

创建新的字符缓冲区,其内容为此缓冲区内容的共享子序列

2.31 abstract CharSequence subSequence(int start, int end)

创建表示此缓冲区的指定序列、相对于当前位置 的新字符缓冲区。

2.32 String toString()

返回包含此缓冲区中字符的字符串。

2.33 static CharBuffer wrap(char[] array)

将字符数组包装到缓冲区中。

2.34 static CharBuffer wrap(char[] array, int offset, int length)

将字符数组包装到缓冲区中。

2.35 static CharBuffer wrap(CharSequence csq)

将字符串包装到缓冲区中。

2.36 static CharBuffer wrap(CharSequence csq, int start, int end)

将字符序列包装到缓冲区中。

最后

如果大家需要Java-API文档,我上传了《Java-API文档-包含5/8/11三个版本》。


本文暂缓更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的别。由于各物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分问题:判断图像中的目标属于哪个别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分 基于深度学习的目标检测算法主要分为两大: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进步·于辰

感谢打赏!很高兴可以帮到你!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值