Хорошо, он работает, постоянно анализируя производительность программы в поисках «горячих точек», которые могут часто или многократно выполняться, которые затем предназначены для оптимизации для высокопроизводительного выполнения с минимальными издержками, для менее критичных для производительности code.
Так что в теории, если есть некоторая проверка границ, и при многократном и частом выполнении становится очевидным, что превышение границ невозможно, горячие точки могут оптимизировать эти проверки.Это не значит, что это безошибочно, но это может быть одной из причин, почему это происходит.
Из статьи 2007 Würthinger и др .: «Всякий раз, когда осуществляется доступ к элементу массива, виртуальные машины Java исполняютсяИнструкция сравнения для обеспечения того, чтобы значение индекса находилось в допустимых пределах. Это снижает скорость выполнения программ на Java. Исключение проверки границ массива идентифицирует ситуации, в которых такие проверки являются избыточными и могут быть удалены. Мы представляем алгоритм исключения проверки границ массива длявиртуальная машина Java HotSpot ™, основанная на статическом анализе в компиляторе «точно в срок». "