http://java9s.com/core-java/java8/functional-programming/mutable-states-functional-programming
Function are at the center of functional programming. Functions are similar to methods in Java. But they differ in certain properties.
Functions avoid mutable states
Functions are stateless
Mutable States:
Most of the methods in Object oriented programming modify the state of the objects. They might assign or update states of the objects. It is very normal and object oriented programming is based on this concept of state updates of objects.
But functional programming states that functions should avoid mutable states. That means they should not assign or update any state of an object.
Functions are independent in their executions and ensure that there are no side-effects during their execution.
The primary reason behind this is that having mutable states lead to concurrency issues and it is hard to leverage the parallel processing capability of multiple cores.