一个简单的问题,执行方法时会发生垃圾回收吗?我相信一段代码值得一千个单词,所以我们开始:
<form class="addressselect" method="POST" action=''>
<input type='hidden' name='csrfmiddlewaretoken' value='TARLwNZUb0SL06Btika0xKR2AXIDrEnEbKDLiDnpNdcGL8SvwDMxjZkODJAZrrnO' />
<tr><th><label for="id_billing_address_0">Billing address:</label></th><td><ul id="id_billing_address">
<li><label for="id_billing_address_0"><input type="radio" name="billing_address" value="18" required id="id_billing_address_0" />
434 Pine Street, Vancouver, BC</label>
</li>
<li><label for="id_billing_address_1"><input type="radio" name="billing_address" value="15" required id="id_billing_address_1" />
123 fake street, Calgary, AB...</label>
</li>
</ul></td></tr>
确实需要您的专家建议。谢谢:)
已编辑:
如果这 是可能的,我正在考虑创建一个扩展 public void start() {
// view is an instance of WeakReference<View> and is not null
if (view.get() != null) {
fetchFeaturedProducts(view.get().getCategory());
// Some work
// More work
// And more work
//
// Garbage collections happens, now view.get() is null
//
// Is it possible?
// If yes, then I think there is now way to get around it other then checking right before dereferencing?
// Or am I wrong and being paranoid?
// Or is there a sophisticated way to resolve this issue other than using Kotlin?
fetchProducts(view.get().getCategory(), Manufacturer.All_COMPANIES, Tarteeb.TARTEEB_NONE, true);
}
}
的虚拟类,并重写WeakReference
方法以在那里检查get
。如果它是null
,则返回不执行任何操作的伪对象null
。
但是我感觉这更多的是破解而不是解决方案。还有更好的主意吗?
答案 0 :(得分:2)
这绝对可以而且实际上必须发生-如果没有执行任何方法,JVM将终止。当然,详细信息取决于您实际的JVM供应商,操作系统和硬件,但是可以在分配正在进行或同时进行时触发集合。它可以停止方法或让它们部分继续。您对此无能为力(而且很少需要照顾)。
此外,引用处理可能独立于所有其他处理,因此引用在所有情况下都可能为空。
处理引用变为null的方法(实际上对于正常的getter也有效)是先分配给局部变量,然后检查该变量是否为null。它永远不会在您的视线范围内发生变化,并且它将在范围的生命周期内保持引用对象的生命(如果不使用变量,则会受到一些限制)。