Java 为什么BuffereImage构造函数抛出NegativeArraySizeException异常

Java 为什么BuffereImage构造函数抛出NegativeArraySizeException异常,java,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)

为什么以下代码抛出
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)
线程“main”java.lang.NegativeArraySizeException中的异常 位于java.awt.image.DataBufferByte。(未知源) 位于java.awt.image.Raster.createInterleavedRaster(未知源) 位于java.awt.image.buffereImage。(未知源) Main.Main(Main.java:120)
它是否超过了某些内部缓冲区的限制?

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

(250*100)*(250*100)*4=2500000000
,结果大于
int
的最大值:
2**31-1=2147483647
。表示数据将以单个
字节
数组的形式出现,因此超出了限制。

是否有任何方法可以创建如此巨大的图像?是否有任何方法可以创建如此巨大的图像?