我有一个处理大量数据的Java工作者。它等待main()中的Redis队列,然后根据类型调用不同的函数来处理数据。
我有两个关于优化代码的问题:
由于
答案 0 :(得分:1)
你在谈论速度,但static
变量将主要帮助你记忆。
如果您要创建多个instante变量(非static
字段)并考虑更改为static
字段:
当一个类的多个实例需要访问这些实例(实例变量)本地变量中的特定对象时,最好将该变量设为
static
变量,而不是让每个实例都包含一个单独的引用。这减少了每个对象占用的空间(少一个实例变量),并且如果每个实例创建一个单独的对象来填充该实例变量,也可以减少创建的对象数。 (引自Java Performance Tuning一书。)
如果您没有创建实例变量,只是在参数中传递变量:
在性能方面,应该没有区别。由于Java中的所有方法参数都是逐个引用传递的,这意味着实际变量不会复制到over:只有它的地址(指针 - 对变量的引用)被复制到被调用方法的参数中。 / p>
在任何情况下,static
字段都会影响代码的可读性(这会使它们更难维护)。如果您确实需要static
行为,请同时考虑使用Singleton设计模式。
底线是:
在我看来,你的情况是:你只是传递变量(没有实例变量)。
我建议你保持这种方式。如果你改变它,通过使用静态字段会有接近零(如果有的话)性能增益 - 另一方面,你的代码将更难维护/理解/调试。