当前位置: 首页 > 面试题库 >

具有超过4GB元素的Java数组

翟修永
2023-03-14
问题内容

我的文件很大,预计约为12 GB。我想将它们全部加载到功能强大的具有16 GB RAM的64位计算机上的内存中,但是我认为Java不支持那么大的字节数组:

File f = new File(file);
long size = f.length();
byte data[] = new byte[size]; // <- does not compile, not even on 64bit JVM

Java有可能吗?

Eclipse编译器的编译错误是:

Type mismatch: cannot convert from long to int

javac给出:

possible loss of precision
found   : long
required: int
         byte data[] = new byte[size];

问题答案:

Java数组索引的类型int(4个字节或32位),因此恐怕您的数组只能使用2 31 −
1或2147483647个插槽。我将数据读入另一个数据结构,例如2D数组。



 类似资料:
  • 当被滚动经过给定ID的元素时,有什么方法可以得到通知吗? 例如:

  • 对我来说,为json数组编写swagger模型似乎非常简单,例如,如果我有这个数组: 我会为它写以下大摇大摆的模型: 然而,我有以下几点: 我如何为这一个写模型? 提前谢了。

  • 问题内容: 此Python代码: 引发此错误信息: 谁能告诉我该怎么办才能解决上面破碎的代码中的问题,以便停止抛出错误消息? 编辑: 我做了一个打印命令来获取矩阵的内容,这就是它打印出来的内容: 对我来说,这看起来像是5行乘13列的矩阵,但是当通过脚本运行不同的数据时,行数是可变的。使用我要添加的相同数据。 编辑2:但是,脚本抛出错误。因此,我认为您的想法不能解释此处正在发生的问题。谢谢你 还有其

  • 我有下面的xml结构: 有不同的 Field(X) 包装器元素,它们包含相同的用户元素。XML 中可以发送 n 个字段。因此,我不能为每个单独的Jaxb。我需要访问用户,但在取消编组步骤后忽略 Field 元素。不幸的是,我无权更改xml结构。我无法找到解决方案。任何指针都会有所帮助。

  • 问题内容: 我正在寻找一个选择器,如果它们具有特定的子元素,它将选择所有元素。例如,选择所有带孩子的人。 可能? 问题答案: 如果元素包含特定的子元素,是否可以选择? 不幸的是还没有。 在CSS2和CSS3选择器的规格不允许任何形式的亲本选配。 关于规格变更的注意事项 从现在开始,这是关于此帖子准确性的免责声明。CSS中的父选择器已经讨论了很多年。由于尚未达成共识,因此变化不断发生。我将尝试使此答

  • 使用您的姓氏初始化 BYTE 数组,而不是以 0 结尾的字符串。使用嵌套循环和索引寻址,编写一个程序,该程序在外部循环的每次迭代中将数组成员向前旋转一个位置。数组开头的值必须绕到最后一个位置。例如,在外部循环的第一次迭代之后,“S”、“m”、“i”、“t”、“h”应转换为“m”、“i”、“t”、“h”、“S”。每次旋转后使用作者的库函数之一显示数组。使用外部循环的正确迭代次数将名称恢复为其原始拼写