我对这个节目感到困惑:
class Point {
private final int x;
private final int y;
}
public class App
{
WeakReference<Point> newPoint() {
Point referent = new Point();
return new WeakReference<Point>(referent); // after return, stack parameter referent is invalid.
}
public static void main( String[] args ) {
App a = new App();
WeakReference<Point> wp = a.newPoint(); // wp is hold valid or invalid reference?
System.out.println(wp.get()); // not null
}
}
我知道,如果弱引用指向一个不再活动的对象,它的get()应该返回null。但在我的代码中,它似乎还活着。
我哪里出错了?
我知道,如果弱引用指向一个不再活动的对象,它的get()应该返回null。但在我的代码中,它似乎还活着。
你的理解是不精确的,尤其是当它依赖于活力的概念时<一般而言,代码>参考对象,尤其是弱参考对象,与我所认识的任何生命感都没有直接关系。相反,他们关心的是可达性。
java.lang.引用#get()
的API文档(不被Weak引用
覆盖)如下所示:
返回此引用对象的引用对象。如果此引用对象已被程序或垃圾收集器清除,则此方法返回null。
请注意,get()
返回null
的条件非常具体:引用对象已被清除。这是通过调用给定实例的clear()
方法来实现的。正如文档所指出的,这可以由垃圾收集器或应用程序来完成。
参考
子类之间的主要区别之一是垃圾收集器执行此类清除的条件。对于Weak参考
s,API文档说:
假设垃圾收集器在某个时间点确定某个对象是弱可访问的。到那时,它将在原子上清除对该对象的所有弱引用[…]。
因此,在垃圾收集器确定给定对象(仅)弱可访问之前,它不会清除对该对象的弱引用。垃圾回收器可能在小程序的短暂运行期间根本没有运行,如果它确实运行了,那么在调用引用的get()
方法之前,如果能够正确地对其进行计时,以观察到所讨论的点
是弱可访问的,这将是令人惊讶的。
您可以尝试通过调用系统来强制GC运行。gc()
在适当的位置。我预计这样做将导致弱引用被清除。然而,这只是为了说明目的。一般来说,您应该在适当的时候依赖Java来执行GC,而不是强制它。
我有一个场景,我们在Tinymce中定义了有效和无效元素。以下是这两个值: “无效的_元素”是为了防止输入JavaScript。通过以上设置,Tinymce不会阻止JavaScript,但如果我删除“valid_元素”,它就会开始工作。 我不确定我是否删除了“valid\u元素”,Tinymce将允许所有内容,这就是为什么保留“valid\u元素”。 Tinymce版本:5.6.2 相关问题,但在
问题内容: 我试图确保传递给go程序的URL有效。但是,我似乎无法解决。我以为我可以解决问题,但这似乎并没有完成。 操场 有沿线的任何filter_var我可以使用吗? 问题答案: 您可以检查您的URL是否具有“方案”,“主机”和/或“路径”。 如果检查返回的URL,则可以看到无效部分已插入不透明数据部分(从某种意义上讲是有效的)。 如果您解析一个URL并且没有Scheme,Host和Path,则
本文向大家介绍有线等效保密(WEP),包括了有线等效保密(WEP)的使用技巧和注意事项,需要的朋友参考一下 有线等效保密(WEP)是无线网络或WiFi的安全标准。它是原始IEEE 802.11协议的一部分。随着无线网络通过无线电波传输数据,窃听无线数据传输比通过电缆连接的有线网络相对容易。WEP旨在在无线网络中提供与有线对等设备相同级别的安全性和机密性。 WEP的功能 WEP于1997年作为IEE
问题内容: 我知道“参数化查询”是圣杯。 这不是主题。 有一篇旧文章,似乎是使用addslashes时与sql注入相关的所有讨论的参考。 这是链接:http : //shiflett.org/blog/2006/jan/addslashes-versus-mysql-real- escape-string 我的问题是:这个概念证明是否仍然正确?我尝试对其进行测试,但是addlashes似乎可以正常
我使用一个向移动应用程序公开REST API的Web应用程序。我将Spring Boot版本从1.5.3.RELEASE升级到2.0.2.RELEASE,在修复了一些重大更改后,我面临着一个无法解决的问题。 我遵循了SpringBoot2.0迁移指南和SpringBootSecurity2.0,还研究了Springboot2.0M4中的安全性变化。 问题是应用使用 JWT 身份验证,并且有一个终结