2

所以,我刚刚启动 Java,在这个网站上,它说操作系统试图找到一个对应用程序来说很大的主内存的未使用部分。如果空间不够怎么办?

4

3 回答 3

3

内存不足时会发生什么取决于您的操作系统。一些不太复杂的操作系统会显示一个错误,要求您手动关闭某些应用程序以释放内存。其他操作系统会尝试将正在运行的应用程序之一“交换”到磁盘以释放主内存中的空间。如果即使在换掉其他所有内容后也没有足够的物理内存来容纳您的应用程序,这些操作系统将显示错误。

请注意,以上内容仅适用于应用程序初始加载到内存中以供运行。大多数应用程序在运行时会请求额外的内存来存储数据。一些应用程序还会请求通过动态库加载额外的可执行代码。如果操作系统没有足够的内存来完成任何这些操作,它会向应用程序返回一个错误,然后应用程序必须通过释放一些不再需要的资源来处理这种情况,或者在没有可能的情况下优雅退出在不获取额外内存的情况下继续。

于 2013-05-30T00:07:42.020 回答
1

如果您没有足够的内存,则程序不会执行(除非您的计算机可以去商店自行购买更多内存。我的不行)。

也就是说,并非所有内存都是 RAM,因为操作系统支持虚拟内存,所以它可用的部分内存实际上是硬盘交换文件。此外,对于 Java 和某些 Windows(至少是 XP),如果您需要大量内存,您就会遇到麻烦,因为即使有足够的内存,它也经常被分区并且 JVM 需要它位于单个“块”中。但是你必须需要很多才能体验到这个问题。

于 2013-05-30T00:08:28.083 回答
0

如果您的系统上有足够的内存来运行 JVM,但不足以运行您的 Java 程序,那么您可能会遇到 OutOfMemoryException。

于 2013-05-30T00:16:46.837 回答