程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了排除 Java 文件中的元素大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决排除 Java 文件中的元素?

开发过程中遇到排除 Java 文件中的元素的问题如何解决?下面主要结合日常开发的经验,给出你关于排除 Java 文件中的元素的解决方法建议,希望对你解决排除 Java 文件中的元素有所启发或帮助;

我对垃圾收集器以及如何在 Java 中清除内存有一些疑问。

我有一个将二叉搜索树写入文件的程序,我制作了一个插入元素的函数和另一个删除元素的函数,但是在删除的方法中,我将删除的元素放在了我称之为“空块”的文件(这是一个堆栈)。在 C 语言中有一种方法可以释放 free() 的内存,在 Java 中有一种由 Java 自行决定的垃圾收集器。如何释放文件中这些块的内存(元素除外)。

有没有办法在 Java 中释放文件中元素的内存(元素类型为 int)?

解决方法

我将我删除的元素放在文件中的一个空格中,我称之为“空块”(这是一个堆栈)

用于跟踪数据的任何数据结构都将位于某个类的对象中。

当该对象不再有任何指向它的引用时,该对象将成为垃圾回收的候选对象。您无需做任何事情,只需不要长时间使用任何参资料。

垃圾收集器可以立即清除不需要的对象,也可以稍后清除。无论哪种方式,我们作为 Java 程序员都不关心。最终将释放内存。

  • 如果指向对象的引用变量是局部变量,则当局部变量超出范围时,该引用将被删除。
  • 如果引用变量是另一个对象的成员字段,则 有问题的对象将在另一个对象变为 垃圾。
  • 如果引用变量是static,你应该显式赋值null,让被引用的对象变成垃圾。在 Java 中,static 变量在应用的整个执行运行期间都保留在内存中。

在前两种情况下,您可以通过将引用变量设置为 null 来更快地释放对象。通常这不是必需的,但如果大量内存处于危险之中,这样做可能是明智的。如果其他宝贵资源被不必要地持有,同样如此。

,

有没有办法在 Java 中释放文件中元素的内存(元素类型为 int)?

你的问题真的很难理解,但我认为你问的是释放数据结构中的磁盘块存储在文件中1.

对此没有 Java 支持。如果您将数据结构写入文件,回收文件空间的问题是您的问题,而不是 Java 的问题。事实上,我认为典型的操作系统不会允许您(字面意思)释放文件中间的磁盘块2

可能有第三方库支持这种东西,但我没有背景知识来推荐。


如果我正确理解了您的要求,那么您对 ​​C 的 malloc / free 与 Java 的垃圾收集的讨论仅与外围相关。这两种方案都是用于管理内存,而不是随机访问文件中的空间。现在您可以想象实现类似的方案来管理文件中的空间,但您需要虑内存和磁盘 I/O 的不同特性。 (即使您将文件映射到内存中。)


1 - 如果您实际上是在谈论在 Java 中管理堆内存中的对象,那么最好的办法就是让垃圾收集器处理它;见Basil's answer。还有用于在堆外内存中存储对象的 3rd-party 库,但尚不清楚它们是否对您有帮助。我知道这样的库通常让程序员来决定何时释放一个对象。 (它们不是垃圾收集的。)
2 - 这将是一个坏主意。如果这样释放的磁盘块随后用于不同的文件,则会产生大量文件碎片。这对文件 I/O 性能不利。

大佬总结

以上是大佬教程为你收集整理的排除 Java 文件中的元素全部内容,希望文章能够帮你解决排除 Java 文件中的元素所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:Java排除