弱引用的其他用途?

2024-01-18

我知道弱引用是一个很好的选择记忆 http://en.wikipedia.org/wiki/Memoization潜在的大量数据,以及维基百科关于弱引用的文章 http://en.wikipedia.org/wiki/Weak_reference仅列出“跟踪应用程序中引用的当前变量”和语句“弱引用的另一个用途是写入缓存”。

What are some other situations (more specific than just "caching results") where the use of weak references is A Good IdeaTM?


弱引用的主要正确用途是识别其重要性的事物源于对它们的强烈引用的存在。两种最常见的情况是:

  • 对象持有对某事物的引用,不是因为它“关心”所讨论的对象,而是因为关心该对象的其他实体可能希望它用它做某事。如果一段时间后没有人再关心该对象,那么其他实体就没有理由继续代表“所有关心它的实体”来操纵它。

  • 保存对同一不可变对象的许多引用的内存成本可能比保存对许多相同对象的引用的内存成本低得多,并且比较对同一对象的引用可能比比较相同对象快得多。创建不可变对象、放弃它、收集它以及创建相同对象的内存成本本质上与创建对象并随后返回对其的第二个引用的成本相同。返回对现有对象的引用无论如何都必须保留是一次巨大的胜利;返回对符合收集条件但尚未被收集的对象的引用可能是也可能不是胜利(通常是轻微的胜利,但在分代 GC 中有时会稍微损害性能);在许多情况下,后一种好处不足以证明使物体的存活时间比原本必要的时间更长是合理的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

弱引用的其他用途? 的相关文章

  • 3 维装箱算法

    我面临着 3 维装箱问题 目前正在进行一些初步研究 了解哪些算法 启发式方法目前能产生最佳结果 由于问题是 NP 难问题 我不希望在每种情况下都能找到最佳解决方案 但我想知道 1 最好的精确求解器是什么 分支定界 我期望使用合理的计算资源可
  • 正则表达式:忽略大小写

    如何使以下正则表达式忽略大小写 它应该匹配所有正确的字符 但忽略它们是小写还是大写 G a b 假设你想要whole正则表达式忽略大小写 你应该寻找i flag http www regular expressions info modif
  • 有没有办法获取正在运行或新打开的资源管理器窗口的 IExplorerBrowser 接口以供后续 BrowseToXXX 调用?

    这么问是因为在上一个问题 https stackoverflow com questions 6220899 answer 6221898我是指向 IExplorerBrowser 的指针 但是它创建了一个子窗口 而我想模拟资源管理器的 查
  • 边界椭圆约束于水平/垂直轴

    背景 我正在尝试将地形图裁剪成围绕多个风力涡轮机的最小尺寸椭圆 以最小化地图的尺寸 执行此地图裁剪的程序可以裁剪椭圆 但仅限轴沿 x 轴和 y 轴对齐的椭圆 我知道边界椭圆问题的算法 https stackoverflow com ques
  • 从应用程序中删除死代码的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常觉得 在多次迭代我的代码之后 我留下了一些函数 类或其他代码行 这些代码在以前的版本中有意义 但对于新版本来说并不是很有用 我知道探查器可
  • 基本编程/算法概念[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我即将 与其他程序员一起 在我的高中
  • 如何使PHP库松耦合? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 独立于符号的字符串的模式匹配

    我需要一种算法 可以在数据中找到预定义的模式 以字符串的形式存在 独立于数据和模式的实际符号 字符 我只关心符号之间的关系 而不关心符号本身 数据中的同一符号具有不同的模式符号也是合法的 模式匹配算法必须强制执行的唯一一件事是保留模式中同一
  • 需要帮助解决 Project Euler 问题 200 [已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试制定一个算法来解决 We
  • 类是否应该有静态和非静态成员

    我试图找出一个类何时适合同时具有静态和非静态函数 又名 obj new ClassA obj gt doOOPStuff something ClassA doStaticStuff Note This example is done in
  • 哪些不同的术语表示相同的事物(或不同的术语,但人们认为它们表示相同的意思)? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • 关闭操作时 WeakAction 中的错误

    在我参与的一个项目中 大量使用了WeakAction 该类允许保留对操作实例的引用 而不会导致其目标不被垃圾收集 它的工作方式很简单 它对构造函数执行一个操作 并保留对操作目标和方法的弱引用 但丢弃对操作本身的引用 当执行操作时 它会检查目
  • 如何在 Perforce 树中查找未跟踪的文件? (svn状态的模拟)

    有人有脚本或别名来查找 Perforce 树中未跟踪 实际上 未添加 的文件吗 编辑 我更新了对此已接受的答案 因为看起来 P4V 在 2009 年 1 月的版本中添加了对此的支持 EDIT 请用p4 status现在 不再需要跳圈了 参见
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 如果找不到指定的图像文件,显示默认图像的最佳方式?

    我有一个普通的电子商务应用程序 我将 ITEM IMAGE NAME 存储在数据库中 有时经理会拼错图像名称 为了避免 丢失图像 IE 中的红色 X 每次显示产品列表时 我都会检查服务器中是否有与该产品相关的图像 如果该文件不存在 我会将其
  • 算法:找到圆中的峰值

    Given n排列成圆圈的整数显示了一种可以找到一个峰值的有效算法 峰值是不小于它旁边的两个数字的数字 一种方法是遍历所有整数并检查每个整数以查看它是否是峰值 这产生O n 时间 似乎应该有某种方法来分而治之 以提高效率 EDIT 好吧 基
  • 我可以创建一个 List> 吗?

    我正在尝试创建一个列表WeakReference使用 4 5 泛型实现 这样我就可以避免类型检查和转换WeakReference目标 但 WeakReference
  • 对于简单的数据库/爱好者设置来说,什么是好的报告服务? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的 PC 上运行着一个微薄的生产环境 用于我在业余时间开发的一个小应用程序 此时我已经完成了基础设置
  • 安全网络登录示例/教程[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 为 Web 应用程序创建登录表单的方法有很多种 但大多数方法都存在这样或那样的缺陷 密码以明文形式传输
  • 是否可以证明序列是否是随机的?

    考虑以下输入 1 1 2 3 5 8 这不是随机的 2 4 8 16 32 这都不是 4 1 2 11 5 9 这个看起来像随机序列 我想问是否有这样的算法来证明输入是否是随机的 不 没有这样的证明 如果你有完全随机的数字 则每个长度为 n

随机推荐

  • 我真的应该删除 ValueEventListener 吗?

    DatabaseReference Ref FirebaseDatabase getInstance getReference Constants Client path Ref keepSynced true Ref addValueEv
  • 在 asp.net 中使用 SAML2.0 进行 SSO

    我的要求是在asp net中使用SAML2 0实现SSO 我这边确实有 2 个供应商 想要将用户从一个站点传递到另一站点而不登录第二个站点 我以前从未使用过SAML2 0 谁能帮我看看我该如何完成它 首先让我们区分协议和令牌格式 我假设您正
  • 在模态框中打开网页?

    这可能吗 不仅是 html 还有不同的样式表等 同时遮蔽屏幕的其余部分 谢谢你的帮助 Ann 查看Colorbox http colorpowered com colorbox Demo http colorpowered com colo
  • 从 Dart 中的 JavaScript 对象获取任意属性

    Edit 这是一个说明我的问题的最小项目 https github com ahirschberg dart js interop toy您可以通过将其提供给浏览器来查看所描述的错误 pub get然后要么pub serve 飞镖 或pub
  • mysql 按字母顺序排列

    我正在尝试按字母顺序对 mysql 数据进行排序 一个 乙 C D 当我点击 B 时 此查询运行 按 b 从用户顺序中选择名称 但结果显示以 a 或 c 或 d 开头的所有记录 我想显示仅以 b 开头的记录 感谢帮助 我想显示仅以 b 开头
  • “git revert”中的“他们”和“我们”是谁?

    我无法理解谁us and them在这些冲突中git revert 所以我真的不知道这里发生了什么 git revert some commit hash Then git status显示以下冲突 deleted by them path
  • 编写编译器……什么是对的,什么是错的? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用干净或自定义配置文件启动 VSC

    通常 VSC 将设置和用户数据存储在 appdata Code 以及扩展名 userprofile vscode 有没有办法告诉新实例加载其他一些配置文件或从 空白画布 开始 就像您可以使用 Firefox 一样 no remote pro
  • 使用 SFML 使自定义类型可绘制

    我最近开始使用 SFML 我决定作为一种学习经验 我将使用它制作一个 pong 克隆 我定义了一个名为Ball绘制使用 SFML 绘制RectangleShape 当我尝试使用以下命令将这个自定义类型绘制到屏幕上时window draw 但
  • Rust 基准测试已优化

    我正在尝试对从 Rust 哈希映射中获取密钥进行基准测试 我有以下基准 bench fn rust get b mut Bencher let hash keys get random hash
  • Qt 去除边距

    我目前正在使用 QMainWindow 小部件 我想删除内部小部件周围的边距 我成功删除了窗口边框的边距 但没有删除窗口内小部件的边距 这是我的代码 例如 this gt mainWidget new QWidget this this g
  • 如何使用Javascript切片提取字符串的第一个和最后一个字母?

    如何使用 JavaScriptslice提取字符串的第一个和最后一个字母 Eg Hello World 我需要的结果是 dH 以下是我的 jsfiddle http jsfiddle net vSAs8 http jsfiddle net
  • log4net AdoNetAppender 截断消息文本

    我遇到一个问题 无论我做什么 我的消息字段都会被截断为大约 42k 这是一个简短的片段来说明我的配置
  • R - 匹配不同长度矩阵的行和列

    我现在的问题如下 我有一个有向 1 模式边缘列表 代表在某一年参与联合项目的演员对 可能如下所示 projektleader projectpartner year A B 2005 A C 2000 B A 2002 现在我只需要某一特定
  • 如何将 UITextField 中用作 leftView 的 UILabel 与 textField 的文本垂直对齐?

    我正在使用一个UILabel as the leftView of a UITextField 问题是文本字段的文本高于标签的文本 这是我到目前为止使用过的代码 UILabel startsWith UILabel alloc init s
  • React-Navigation:使用/更改带有 Redux 状态的标题标题

    是否可以访问 React Navigation 的标题标题中的整个 Redux 状态 The 官方文档 https reactnavigation org docs intro headers表示导航对应的状态是可访问的 static na
  • 交叉编译中的CMake CMAKE_AUTOMOC

    我有以下问题 我尝试使用 CMake 中构建的本机机制进行交叉编译 我准备了以下 toolchain cmake 文件 set CMAKE SYSTEM NAME Linux set CMAKE SYSTEM PROCESSOR arm s
  • 具有复选框行为的自定义列表视图,如 Gmail 应用程序

    我在这里阅读了很多有关列表视图和复选框的帖子 他们中的很多人都使用 CheckedTextView 或扩展它 我想实现一个带有复选框行为的自定义列表视图 就像在 android 邮件应用程序 Gingerbread ICS 上一样 只有复选
  • spring security 2.0.7 和 spring 2.5 的登录表单问题

    您好 我正在尝试在我的应用程序上放置一个登录页面 我的login jsp是
  • 弱引用的其他用途?

    我知道弱引用是一个很好的选择记忆 http en wikipedia org wiki Memoization潜在的大量数据 以及维基百科关于弱引用的文章 http en wikipedia org wiki Weak reference仅