gpt4 book ai didi

java - 存在 Integer 和 IntWritable 类型

转载 作者:可可西里 更新时间:2023-11-01 14:45:09 25 4
gpt4 key购买 nike

我的问题可能很愚蠢,但请耐心等待。

在 Java 中,int 是一种数据类型,而 Integer 是一种对 int 进行包装的类型。如果我们谈论 Hadoop,可以使用 IntWritable 而不是 Integer。 (如果没记错的话)

虽然大部分时间都在研究,但在 hadoop 中他们使用 IntWritable 是因为它有利于通过网络传输大量数据。没关系..!

在执行此操作时我遇到了一件事,无论是 Integer 还是 IntWritable,它们围绕 int 的方式有何不同?我在哪里可以看到可以显示围绕 int 的包装差异的代码?如果我看到 IntWritable 类或 Integer 类,它们似乎是一个简单的类,但是当 int 被 Integer 或 IntWritable 重新定义时,区别在哪里?

我现在正在考虑将 int 作为 Java 的核心类型,并寻找当 int 位于后端的 Integer 或 IntWritable 中时会发生什么?它如何流动成为 Integer 或 IntWritable ?我希望我的问题被清除..! :)

最佳答案

是的,有区别。

IntWritableInteger 的 Hadoop 变体已针对 Hadoop 环境中的序列化 进行了优化。一个integer将使用默认的 Java 序列化,这在 Hadoop 环境中非常昂贵。

IntWritable 实现 Comparable<IntWritable>, Writable, WritableComparable<IntWritable>接口(interface)。

  • Comparable 是接口(interface),其抽象方法使我们可以灵活地比较两个对象。
  • Writable 用于将数据写入本地磁盘,它是一种序列化格式。可以在 Hadoop 中实现自己的 Writables。Java 的序列化在系统上过于庞大和缓慢。这就是为什么Hadoop 社区已将 Writable 部署到位。
  • WritableComparable 是以上两个接口(interface)的组合。

更多引用:

Why does Hadoop need classes like Text or IntWritable instead of String or Integer?

对于 Integer 的内部结构类:

https://www.geeksforgeeks.org/java-lang-integer-class-java/

IntWriable 的 Hadoop 文档:

http://hadoop.apache.org/docs/r2.7.1/api/org/apache/hadoop/io/IntWritable.html

关于java - 存在 Integer 和 IntWritable 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52361265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com