gpt4 book ai didi

java - DirectMemory访问和异常

转载 作者:行者123 更新时间:2023-12-01 14:28:08 25 4
gpt4 key购买 nike

如果我直接使用ByteBuffer(etc)访问内存,如果使用的内存太大(堆外),会抛出什么样的异常? JVM有什么控制权吗?我知道 JVM 在这种情况下没有任何作用。请纠正我。

提前致谢

最佳答案

在 Oracle JVM 中,如果您尝试调用 ByteBuffer.allocateDirect()如果参数大于可用内存,您将得到 IOException带有消息“直接缓冲存储器”。如果不设置 -XX:MaxDirectMemorySize 也可能会出现此异常您需要的内存量。

此外,您还可以获得IllegalArgumentException如文档所示。

分配缓冲区后,如果您尝试读取缓冲区末尾之后的内容,您将得到 BufferUnderflowException ;如果您尝试写入超过缓冲区末尾,您将得到 BufferOverflowException 。这些也包含在文档中。

关于java - DirectMemory访问和异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17030296/

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