Ограничение на максимальное значение типа double в Java связано с свойствами арифметики чисел с плавающей точкой. 3
Тип double в Java способен выражать значения до бесконечности, но представление чисел в этом типе ограничено числом бит. 2 Для хранения числовых значений double использует 64 бита. 24
Кроме того, разработчики Java посчитали, что есть определённый лимит, при добавлении которого к максимальному значению double число не перейдёт в стадию бесконечности. 1
Если результаты вычислений выходят за пределы диапазона значений для типа double, Java приступает к использованию концепции бесконечности для отображения таких значений. 3