Основные преимущества использования Optional вместо примитивов:
Для работы с примитивами существуют специализированные классы OptionalDouble, OptionalInt и OptionalLong. 1 Они помогают избежать ненужных автоупаковок и распаковок примитивных значений в объекты (например, int → Integer). 1
Однако на практике эти классы используются редко, так как предлагают ограниченное количество методов по сравнению с обычным Optional. 1