有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中的数据结构是为提高效率而设计的,如果您经常使用临时int或float,那么最好将其设为字段吗?

再加一点背景知识,我有一个数据结构,当删除、添加或简单地检索时,我会在方法中临时使用浮点作为临时存储。与其在内存中请求一个新的位置来放置这个浮点数,并让垃圾收集器在几行之后收集它,不如将空间保留为字段,然后我们只需更改值,而不必不断浪费时间进行垃圾收集和重新分配内存空间

在这种情况下,我在Android上做这件事,而垃圾收集器是一种痛苦,我能保存的每一个对象都有很大的帮助


共 (2) 个答案

  1. # 1 楼答案

    对于方法的临时位置,不应使用实例变量

    • 实例变量占据对象上的空间;i、 e.他们让它变得更大。只要对象存在,空间就会被使用。实例的数量可能比方法调用的数量多,因此,即使有合理的理由这样做,将临时变量放入实例变量中很可能比替代变量占用更多的空间

    • 实例变量由使用特定实例的所有线程共享,也由对同一线程中的对象的可重入(递归)调用共享。如果使用它们来保存临时对象,则可能会有一个方法调用/线程干扰另一个方法调用/线程的风险

    改用局部变量。这就是它们的目的

  2. # 2 楼答案

    不,只需使用局部变量即可。传统上,局部变量在过程堆栈框架中分配一个位置,或者可能仅在机器寄存器中分配一个位置。在这两种情况下,与垃圾收集器的交互都不是问题:当堆栈框架弹出时,变量存储将消失&;程序返回