Why Is Optional Used
The Main Design Goal of Optional Is to Provide a Means for a Function Returning a Value to Indicate the Absence of a Return Value. See This Discussion. This...
The main design goal of Optional is to provide a means for a function returning a value to indicate the absence of a return value. See this discussion. This allows the caller to continue a chain of fluent method calls. This most closely matches use case #1 in the OP’s question.
Why is Optional better than null check?
In a nutshell, the Optional class includes methods to explicitly deal with the cases where a value is present or absent. However, the advantage compared to null references is that the Optional class forces you to think about the case when the value is not present.
Why Optional is not serializable?
We saw that there are different reasons to not make Optional serializable: The design goal as a type for return values, the technical lock-in produced by having to support serialized forms forever and the limitations of value-based classes which might allow future optimizations.