如果我的主内存上没有足够的空间来运行程序怎么办?

时间:2013-05-30 00:02:44

标签: java

所以,我刚刚开始使用Java并在this网站上,它说操作系统试图找到一个对应用程序来说很大的主内存的未使用部分。如果没有足够的空间会发生什么?

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

也就是说,并非所有内存都是RAM,因为操作系统支持虚拟内存所以可用的部分内存实际上是硬盘交换文件。此外,使用Java和一些窗口(至少XP),如果你需要大量内存,你会遇到麻烦,因为即使有足够的内存,它也经常被分区,而JVM需要它在一个“块”中。但是你需要很多东西来解决这个问题。

答案 2 :(得分:0)

如果系统上有足够的内存来运行JVM但不足以运行Java程序,则可能会出现OutOfMemoryException。