Объявление нескольких массивов с 64 элементами в 1000 раз быстрее, чем объявление массива из 65 элементов

Недавно я заметил, что объявление массива, содержащего 64 элемента, намного быстрее (> 1000 раз), чем объявление массива того же типа с 65 элементами.

Вот код, который я использовал для проверки этого:

public class Tests{
    public static void main(String args[]){
        double start = System.nanoTime();
        int job = 100000000;//100 million
        for(int i = 0; i < job; i++){
            double[] test = new double[64];
        }
        double end = System.nanoTime();
        System.out.println("Total runtime = " + (end-start)/1000000 + " ms");
    }
}

Это работает примерно через 6 мс, если я заменюnew double[64] с участиемnew double[65] это займет примерно 7 секунд. Эта проблема становится экспоненциально более серьезной, если задание распределяется по все большему количеству потоков, откуда и возникла моя проблема.

Эта проблема также возникает с различными типами массивов, таких какint[65] или жеString[65], Эта проблема не возникает с большими строками:String test = "many characters";, но начинает происходить, когда это меняется наString test = i + "";

Мне было интересно, почему это так и можно ли обойти эту проблему.

Ответы на вопрос(2)

Ваш ответ на вопрос