Да, в JVM есть синтетический Class
, представляющий массив каждого возможного типа (например, Integer[].class
). Также есть один для каждого типа примитива (например, int[].class
). Я не думаю, что это что-то, что имеет определение, например, исходный файл, где угодно. Они ведут себя как положено; Например, Number[].class
назначается из Integer[].class
.
У него нет специальных методов, если вы это имеете в виду, ни специального исходного файла. Я даже не думаю, что поле length
, которое имеют типы массивов, также считается определенным в этом классе, хотя я признаю, что не проверял; это особый случай ВМ.
JLS 10.8 определяет это.