Title: feat: 添加 Java ByteBuffer 兼容接口 by CPythoner · Pull Request #17 · CPythoner/ByteBuffer · GitHub
Open Graph Title: feat: 添加 Java ByteBuffer 兼容接口 by CPythoner · Pull Request #17 · CPythoner/ByteBuffer
X Title: feat: 添加 Java ByteBuffer 兼容接口 by CPythoner · Pull Request #17 · CPythoner/ByteBuffer
Description: 新增 Java ByteBuffer 兼容 API 本 PR 添加了与 Java ByteBuffer 兼容的接口,使 C++ 实现更接近 Java 原生 API。 新增接口 数组访问方法 (Java compatibility) hasArray(): 检查是否有可访问数组 array(): 返回底层字节数组 arrayOffset(): 返回数组偏移量 直接缓冲区方法 isDirect(): 判断是否为直接缓冲区 字节序方法 (跨平台数据序列化) ByteOrder 枚举:ORDER_BIG_ENDIAN / ORDER_LITTLE_ENDIAN order(): 获取/设置字节序 order(ByteOrder): 设置字节序 nativeOrder(): 获取主机字节序 自动字节交换支持(读写时根据设置的字节序自动转换) 比较和辅助方法 compareTo(const ByteBuffer&): 按字典序比较两个缓冲区 hash(): 计算哈希值(用于 unordered_map 等容器) toString(): 字符串表示 单元测试 添加了 27 个新测试用例,覆盖所有新接口: hasArray, array, arrayOffset 测试 isDirect 测试 nativeOrder, order 测试 字节序数据序列化测试(BigEndian, LittleEndian, Float, Double) compareTo 测试 hash 测试 toString 测试 测试结果 All tests passed (155 assertions in 67 test cases) 新增 27 个测试用例,45 个断言。 使用示例 // 字节序控制 ByteBuffer bb; bb.order(ByteOrder::ORDER_BIG_ENDIAN); bb.putInt(0x12345678); // 访问底层数组 if (bb.hasArray()) { uint8_t* arr = bb.array(); // 直接操作数组 } // 比较缓冲区 ByteBuffer bb1, bb2; // ... 填充数据 ... int result = bb1.compareTo(bb2); // 哈希值 size_t h = bb.hash(); 兼容性说明 默认使用主机字节序(native order) 切换字节序后,所有多字节类型的读写都会自动进行字节交换 适用于跨平台数据序列化和网络传输场景
Open Graph Description: 新增 Java ByteBuffer 兼容 API 本 PR 添加了与 Java ByteBuffer 兼容的接口,使 C++ 实现更接近 Java 原生 API。 新增接口 数组访问方法 (Java compatibility) hasArray(): 检查是否有可访问数组 array(): 返回底层字节数组 arrayOffset(): 返回数组偏移量 直接缓冲区方法 isDire...
X Description: 新增 Java ByteBuffer 兼容 API 本 PR 添加了与 Java ByteBuffer 兼容的接口,使 C++ 实现更接近 Java 原生 API。 新增接口 数组访问方法 (Java compatibility) hasArray(): 检查是否有可访问数组 array(): 返回底层字节数组 arrayOffset(): 返回数组偏移量 直接缓冲区方法 isDire...
Opengraph URL: https://github.com/CPythoner/ByteBuffer/pull/17
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:90f167bf-3547-2220-d57b-de2cfee0c6f5 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | CD76:1A407B:4F5912:6D2BC7:6A5A500F |
| html-safe-nonce | 924e19e58ae3893f08121fa8f18c9780d1e829ce4896de7312bfc2c432a38b69 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDRDc2OjFBNDA3Qjo0RjU5MTI6NkQyQkM3OjZBNUE1MDBGIiwidmlzaXRvcl9pZCI6IjcxMjcxMjI3Mzc2ODU0ODM1MzUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 686d3514eb6c5b99d3bfd916895afc1114ecce743d849c578d65e59f0bea9abf |
| hovercard-subject-tag | pull_request:3488453729 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/CPythoner/ByteBuffer/pull/17/files |
| twitter:image | https://avatars.githubusercontent.com/u/6645605?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/6645605?s=400&v=4 |
| og:image:alt | 新增 Java ByteBuffer 兼容 API 本 PR 添加了与 Java ByteBuffer 兼容的接口,使 C++ 实现更接近 Java 原生 API。 新增接口 数组访问方法 (Java compatibility) hasArray(): 检查是否有可访问数组 array(): 返回底层字节数组 arrayOffset(): 返回数组偏移量 直接缓冲区方法 isDire... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | a793cd1fa898929111edad5857ee1f24ecf4bf7702525e67357cabc9df136fc3 |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/CPythoner/ByteBuffer git https://github.com/CPythoner/ByteBuffer.git |
| octolytics-dimension-user_id | 6645605 |
| octolytics-dimension-user_login | CPythoner |
| octolytics-dimension-repository_id | 351674544 |
| octolytics-dimension-repository_nwo | CPythoner/ByteBuffer |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 351674544 |
| octolytics-dimension-repository_network_root_nwo | CPythoner/ByteBuffer |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 311929384671aa49f385b6fcc680ae3933943203 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width