Безопасны ли массивы Java в потоке статического метода?
public static int rank(int key, int[] a) {
int lo = 0;
int hi = a.length - 1;
while (lo <= hi) {
// Key is in a[lo..hi] or not present.
int mid = lo + (hi - lo) / 2;
if (key < a[mid]) hi = mid - 1;
else if (key > a[mid]) lo = mid + 1;
else return mid;
}
return -1;
}
Приведенный выше статический метод выполняет бинарный поиск. Это потокобезопасно? Я знаю, что локальные переменные являются потокобезопасными, но «a» здесь - это массив, так что это означает, что это объект в Java, верно? Это проблема? Массив только что читается, никак не изменяется, поэтому я предполагаю, что этот метод является поточно-ориентированным. Но я хочу убедиться, что понимаю почему.
Спасибо!