Java 调用System.gc()和被系统终止的进程之间的区别

Java 调用System.gc()和被系统终止的进程之间的区别,java,android,garbage-collection,Java,Android,Garbage Collection,两者的区别是什么 System.gc() Android系统因内存不足而终止进程 这两种方法的不同之处在于System.gc()调用垃圾收集器以开始运行,但不确定它是否会运行。如果找不到更多内存,则开始释放分配的内存 Android系统因内存不足而终止进程 如果android find available free memory的可用内存不足,那么它会尝试终止长时间运行的进程并释放相关内存 使现代化 最好不要调用System.gc(),因为android系统自己会在发现没有可用内存时调用此方法

两者的区别是什么

  • System.gc()

  • Android系统因内存不足而终止进程


这两种方法的不同之处在于
System.gc()
调用垃圾收集器以开始运行,但不确定它是否会运行。如果找不到更多内存,则开始释放分配的内存

Android系统因内存不足而终止进程

如果android find available free memory的可用内存不足,那么它会尝试终止长时间运行的进程并释放相关内存

使现代化
最好不要调用
System.gc()
,因为android系统自己会在发现没有可用内存时调用此方法。

前台进程(即当前屏幕上的活动)可能会出现
OutOfMemoryError
(前面是最后一个
System.gc()
)但是Android系统可能会在抛出
OutOfMemoryError
之前,决定关闭其他进程(未使用的应用程序和长时间运行的服务)以释放内存。此外,无需以编程方式调用
System.gc()
,因为系统已经不时地执行它,而且它甚至不能保证一开始就运行。