Являются ли массивы 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, верно? Это проблема? Массив просто читается, никак не модифицируется, поэтому я предполагаю, что этот метод потокобезопасен. Но я хочу убедиться, что понимаю почему.

Спасибо!

8
задан user247866 4 November 2011 в 21:13
поделиться