java - 为什么 BufferedImage 构造函数会抛出 NegativeArraySizeException 异常

标签 java

为什么下面的代码会抛出NegativeArraySizeException异常?

new BufferedImage(250 * 100, 250 * 100, BufferedImage.TYPE_4BYTE_ABGR);

输出

Exception in thread "main" java.lang.NegativeArraySizeException
        at java.awt.image.DataBufferByte.<init>(Unknown Source)
        at java.awt.image.Raster.createInterleavedRaster(Unknown Source)
        at java.awt.image.BufferedImage.<init>(Unknown Source)
        at Main.main(Main.java:120)

它是否超出了某些内部缓冲区的限制?

最佳答案

(250 * 100) * (250 * 100) * 4 = 2500000000结果大于 int 的最大值:2 ** 31 - 1 = 2147483647The document表示数据将在单个 byte 中数组,因此超出了限制。

关于java - 为什么 BufferedImage 构造函数会抛出 NegativeArraySizeException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37048631/

相关文章:

java - 指定具有多个上下文的 Camel 上下文关闭顺序

java - 限制条件下的过滤列表

java - 如何使用java从xml中读取一些点

Java Mongo索引查询

java - 将不同类型的可比较数量与零进行比较

java - 使用 XML 填充 JComboBox - 缺少一些内容

java - 什么是 OutOfMemoryError 异常,如何产生它?

java - 如何覆盖 .size() 方法来检查 List<IWordID> java jwi?

java - 使用 spring mongodb 创建一个具有差异的 ProjectionOperation

java - 使用未指定的索引