当前位置: 首页 > 面试题库 >

Java在构造函数中泄漏了这个

桓风史
2023-03-14
问题内容

为什么IDE会抱怨“在构造函数中泄漏”?我一直认为这只是一种不好的做法。但是我实际上从来没有发现为什么它不好。


问题答案:

this在构造器(而不是控制器)中泄漏引用是危险的,尤其是在多线程环境中。这是因为在构造函数调用完成之前,对象尚未完全构造。this因此,从构造函数中泄漏出来意味着外部世界可以访问尚未完全构建的对象。这可能不一定会导致单线程程序出现问题(尽管有可能,但是这种情况下的问题更加明显)。但是,如果this泄漏给其他线程,他们实际上可以尝试在对象构造完成之前对它进行操作,这会导致难以发现的错误。



 类似资料:
  • 问题内容: 我配置了tomcat以使用其他外部开源。 但是,在tomcat运行几分钟后,我得到: 是什么原因造成的? 我要去哪里看?可能是Tomcat上的数据池吗? Tomcat中的线程是什么意思? 已编辑 这是我的全部踪迹。该应用程序似乎在仍在运行时会重新加载其上下文-我不知道为什么! 问题答案: 消息实际上很清楚:某些东西创建了一个类型为type的值-这是一个很好的提示。这很可能意味着框架本身

  • 本文向大家介绍Java构造函数,包括了Java构造函数的使用技巧和注意事项,需要的朋友参考一下 构造函数与方法相似,但在以下方面有所不同。 它们没有任何返回类型。 构造函数的名称与类的名称相同。 每个类都有一个构造函数。如果我们未为类明确编写构造函数,则Java编译器将为该类建立默认构造函数。 每次创建一个新对象时,将至少调用一个构造函数。 一个类可以具有多个构造函数。 示例 输出结果

  • 问题内容: 这些来自github上的spring amqp示例,位于https://github.com/SpringSource/spring-amqp- samples.git 这些是 什么类型的Java构造函数?它们是吸气剂和吸气剂的捷径吗? 与此相反 问题答案: 这些构造函数被重载以使用调用另一个构造函数。第一个无参数构造函数使用空参数调用第二个。第二呼叫的第三构造(未示出),其必须采取,

  • 问题内容: 当tomcat关闭时,我在catalina.out日志文件中收到以下消息。我正在使用Tomcat 7.x和Tomcat JDBC数据源。 第一个声称DataSource已被强制取消注册,这样很好。但是,这很奇怪,因为我已经像这样配置了destroy-method: 不知道为什么我得到第二个。关于“ MySQL语句取消计时器”的内容。 任何帮助表示赞赏 编辑1:我尝试了@Zelldon建

  • 问题内容: 我根据教程实现了加密过程: http://www.openssl.org/docs/crypto/EVP_EncryptInit.html# 当我运行它通过低谷并得到以下报告: 我下载了OpenSSL的源代码。在ERR_put_error内部,我看到了ERR_get_state中的内存分配,并在err_clear_data内部释放了内存,但是累积了err_clear_data内部的逻辑