Simply put, when something is immutable, it is something that cannot be changed over a period of time. But within the context of Object-Oriented and Functional Programming, an Immutable Object refers to data or a variable that cannot be modified after it had been developed or created. There are cases in which an Immutable Object may have internal properties that do change despite the fact that the object’s state appear to be unchanged externally.
In Object-Oriented Programming, strings and other objects are expressed as immutable objects. This is aimed at improved readability and runtime efficiency. Programmers see these kinds of objects as not only easier to understand and but offer greater security altogether.