我有一个Utils类,它加载了大量的字符串(静态变量),并定义了一个使用该列表的函数。
我在另一个类Solution中使用此函数。目前,我每次使用它时都会调用Utils.my_function(在一个大的for循环中,所以它被调用了数千次)。如果我在解决方案中实例化Utils会更快吗? (Utils中定义的单词列表只能定义一次吗?)
答案 0 :(得分:1)
一大串字符串(一个静态变量) ... Utils中定义的单词列表只能定义一次吗?
根据定义,静态变量只加载一次。所以它已经是你能做到的最快。
编辑:编写Java代码的开发人员很聪明。 JVM很可能会检测到您的阵列经常被访问,并且会优化其操作,无论它是静态变量还是实例变量。但是我不能给你更多的信息,也许一些Java专家可以给你一个更准确的答案。答案 1 :(得分:0)
嗯,正如已经指出的那样static
只被调用一次。您可以做的另一件事是批处理 - http://java.dzone.com/articles/batch-processing-best
不是每行循环 - 一次调用一组行然后执行你的函数,然后移动到下一组等等。你需要分析你的应用程序以查看有多少行会产生良好的响应对于应用程序。