【发布时间】:2014-01-29 04:03:19
【问题描述】:
有谁知道异常一旦被创建和抛出占用多少内存?
例如,NullPointerException。
以及异常是如何被垃圾收集的?
【问题讨论】:
-
它们像任何其他 Java 对象一样被收集。为什么他们会有什么特别之处?
-
异常的大小将取决于您的 Java 实现和调用堆栈的深度。你需要这些信息做什么?你可能不应该有无数的例外,所以大部分时间都无关紧要。
-
我完全同意马克,这应该是你问题的答案
-
我认为垃圾收集的问题是有道理的。当然,一个异常对象在不再引用它之后会被垃圾回收。但是什么时候达到这个条件呢?对象的存活时间是多少?传统上,您不会将其分配给范围清晰可见的变量。
-
@BogdanT。它存在于内存中,直到它被捕获然后超出范围/不再持有引用,或者它未被捕获并且由于未捕获的异常而停止了主线程。
标签: java exception memory nullpointerexception