递归和记忆

2023-11-26

我有一个程序,通过递归传递大量数据,比如 1000 个变量。递归至少会运行 50 或 60 次。我担心的是,由于空间不足,数据是否有可能被覆盖在内存位置上,或者如果没有内存,我会得到一些异常,即程序内存已经用完了(我没有收到这样的错误)?

是否有可能因为程序没有更多内存并且覆盖现有位置而得到错误的解决方案?


涉及两个存储区域:stack和堆。堆栈是当前的位置state保留方法调用的内容(即局部变量和引用),堆是存储对象的地方。热点文档说在Linux 64位上每个线程默认有一个1024kB的堆栈。堆可以任意大,目前已达到 GB 量级。

递归方法同时使用堆栈和堆。您首先用完哪一个取决于实施情况。作为一个例子,考虑一个需要数千个整数的方法:如果它们被声明为局部变量,即:

public void stackOverflow() {
  int a_1;
  int a_2;
  int a_3;
  // ...
  int a_10_000_000;
}

你的程序将会崩溃StackOverflowError。另一方面,如果您将整数组织在数组中,例如:

public void outOfMemory() {
  int[] integers = new int[10 * 1000 * 1000];
} 

堆很快就会被填满,程序将以OutOfMemoryError。在这两种情况下,内存都不会损坏或数据被覆盖。然而,在这两种情况下,代码都是wrong并且必须以某种方式修复 - 但告诉你how我们需要更多地了解您的计划。

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

递归和记忆 的相关文章

  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 有没有办法使用javascript检测网络连接类型? [复制]

    这个问题在这里已经有答案了 我想知道是否有任何方法可以检查用户是否使用 javascript 从 2G 3G 4G 或 WiFi 连接 据我所知 只有 Mozilla 提供了网络信息 API 它有助于检测一般连接类型 如 wifi 蜂窝 等
  • 如何在 Caliburn.Micro 中绑定按键手势?

    如何让 Caliburn Micro 将按键手势映射到 ViewModel 上的操作方法 例如 我想实现一个选项卡式界面 并且希望我的 ShellViewModel 有一个 NewTab 方法 用户应该能够通过按键盘上的 Ctrl T 来调
  • 如何通过我的网站分享 Facebook 活动?

    我想在我的网站上分享活动 有按钮 喜欢它 但没有像 加入活动 这样的按钮 有任何想法吗 None
  • 如何使用C++流优雅地读取整数?

    我有一个充满以下格式行的文件 1 2 3 我只想使用 C 流加载数字 最优雅的方法是什么 我只考虑了 cin get 并检查每个字符是否是数字 我认为这将是最快但又优雅的方式 int a b c scanf d d d a b c
  • “成功但有错误”的 HTTP 状态代码?

    我查了一下 但没有看到请求成功时的 HTTP 状态代码 但在 不返回点 之后出现错误 例如 假设您处理一个请求 将其提交给数据库 但是在返回结果时您耗尽了内存 或者遇到了 NPE 或者发生了什么 它would曾经是200响应 但现在 在内部
  • iOS 7 的持久 UDID 等效项? [复制]

    这个问题在这里已经有答案了 首先我想说我完全清楚uniqueIdentifier已被弃用 并且有identifierForVendor advertisingIdentifier 我的问题是 是否有办法完全持久设备标识符在重启 应用程序卸载
  • 我有一个可执行文件的核心转储,该可执行文件不是使用调试符号构建的。我可以恢复 argv 内容吗?

    我有一个可执行文件的核心转储 该可执行文件不是使用调试符号构建的 我可以恢复 argv 内容以查看命令行是什么吗 如果我运行 gdb 我可以看到回溯 并且可以导航到 main 框架 一旦到达那里 有没有办法在不知道其确切地址的情况下恢复 a
  • Boost单元测试主要功能?

    我该如何定义自己main 使用 boost 进行测试时的功能 Boost 使用它自己的 main 函数 但我使用自定义内存管理器 并且需要在分配任何内存之前对其进行初始化 否则我会收到错误 我不相信你真的需要你自己的主要 我认为你的情况要好
  • 如何从 Homebrew 重新安装 python@2?

    我在使用 openssl 和 python 2 时遇到了问题 这里已经解释了 未解决 记录的重新安装 Python 和 openssl 的解决方法不起作用 因此我决定卸载并重新安装 Python 问题是 当您尝试使用brew 安装Pytho
  • java Callable FutureTask Excecuter:如何监听已完成的任务

    我对执行者服务很陌生 喜欢自己做所有事情 但我认为是时候信任这些服务了 我想手过去Executer a Runnable 执行器将其包装在一个FutureTask然后把它还给我 现在我称之为民意调查done 方法 但我希望届时得到通知don
  • 如何获取目录中的所有文件并跳过未经授权的文件?

    我需要获取 C 盘中允许的所有文件的列表writing and reading 所以我尝试这样 string files Directory GetFiles C SearchOption AllDirectories foreach st
  • 如何加快 R 中的文本搜索速度?

    我有一个很大的文本向量 我想搜索特定的字符或短语 正则表达式需要很长时间 怎样才能快速搜索到呢 样本数据 R lt 10 7 garbage lt replicate R paste0 sample c letters 1 5 10 rep
  • JSON 响应字符串中的取消转义字符

    我发出了一个 JSON 请求 它给了我一个使用的字符串Unicode 字符代码看起来像 s u003Cp u003E 我想将其转换为 s p 在 Python 中执行此操作的最佳方法是什么 请注意 这是同一个问题this one 仅适用于除
  • html 表 colspan 未按预期工作

    HTML 概念有时是如此糟糕 这是我在 html 表中使用 colspan 的代码 看起来并不像我预期的那样 table border 1 tr td a td tr tr td b td td c td tr table 我想要的是 ce
  • VBA 宏运行时错误 6:循环内编码溢出

    遇到此错误的问题 我正在创建一个 GA 循环是将我的适应度值分配给一个数组 一些变量 Dim Chromolength as integer Chromolength varchromolength aVariables Dim i as
  • OpenGL帧缓冲区:可以清除它,但不能绘制它

    在 Mac 上 我有一个 OpenGL 设置 除了帧缓冲区外 它工作得很好 纹理工作等 所以我知道纹理已启用 我有一个有效的上下文 等等 所有工作都完美无缺 直到我尝试创建一个帧缓冲区 我使用 glGenFramebuffers glBin
  • GWT 2.0 的硒测试

    如何使 selenium click 的工作方式与手动鼠标单击相同 我最近将 GWT 从 1 7 1 升级到 2 0 一些 selenium 测试 SeleniumRC v1 0 1 IE7 现在失败 看来 Selenium click 方
  • 泛型方法可以使用逆变/协变类型吗?

    我正在编写一个通用方法 以在 T4 模板的特殊任务中使用它 该方法应该允许我使用通用接口中的专用类型 我考虑了以下签名 interface IGreatInterface Object aMethodAlpha u U parameter
  • WPF 用户控件父级

    我有一个用户控件 我将其加载到MainWindow在运行时 我无法从包含窗口获取句柄UserControl 我努力了this Parent 但它始终为空 有谁知道如何从 WPF 中的用户控件获取包含窗口的句柄 以下是控件的加载方式 priv
  • 递归和记忆

    我有一个程序 通过递归传递大量数据 比如 1000 个变量 递归至少会运行 50 或 60 次 我担心的是 由于空间不足 数据是否有可能被覆盖在内存位置上 或者如果没有内存 我会得到一些异常 即程序内存已经用完了 我没有收到这样的错误 是否