Java 重复访问数组和本地存储值之间的区别

Java 重复访问数组和本地存储值之间的区别,java,arrays,memory,for-loop,runtime,Java,Arrays,Memory,For Loop,Runtime,有人能解释一下重复访问数组的运行时和缺点,以及是否最好将数组中的字符串值存储为临时字符串。例如,如果我有一个字符串数组,这样做更好吗 int paramLength = params.length; for (int i=1; i<paramLength; i++){ 很抱歉,如果重复此操作,我无法找到更多关于在数组中访问这些值与在本地存储这些值的缺点的知识。最终,数组索引和字符串对象只是指向内存中某个位置的数据,您每次都只是指内存中的某个位置,因此从这一方面来看,性能绝对没有差异 这一

有人能解释一下重复访问数组的运行时和缺点,以及是否最好将数组中的字符串值存储为临时字符串。例如,如果我有一个字符串数组,这样做更好吗

int paramLength = params.length;
for (int i=1; i<paramLength; i++){

很抱歉,如果重复此操作,我无法找到更多关于在数组中访问这些值与在本地存储这些值的缺点的知识。

最终,数组索引和字符串对象只是指向内存中某个位置的数据,您每次都只是指内存中的某个位置,因此从这一方面来看,性能绝对没有差异

这一行只是给你另一个指向内存中相同位置的指针。当您引用其中任何一个时,您将从内存中的同一位置获得相同的数据

String temp = params[i];

如果我们谈论的是大量的数据集和大量的字符串,那么最好使用数组而不是一堆字符串对象。这是因为字符串对象可以稀疏地分散在内存中,即在不同的缓存和页面帧上。因此,使用数组将使数据位置保持连续性,从而提供更好的缓存和页面/帧性能。

我认为您会发现,没有可测量的性能差异,这是一个风格问题。使用最容易阅读的版本。@ElliottFrisch谢谢,我想我忘记了引用内存中的相同位置,因此唯一的好处是代码更简单,可读性更强。
for (int i=1; i<paramLength; i++){
System.out.println(params[i]);
for (int i=1; i<paramLength; i++){
String temp = params[i];
System.out.println(temp);
for (String s: params) 
System.out.println(s);
String temp = params[i];