Java Glossary : immutable

CMP home Java glossary home Menu no menu Last updated 2004-06-28 by Roedy Green ©1996-2004 Canadian Mind Products

Java definitions: 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

You are here : home : Java Glossary : I words : immutable.

immutable
Not changeable. All Java variables are by default mutable. You can make them immutable by using the final keyword. You can also make them private and provide no accessors to the outside world to change them. The wrapper classes, Byte, Character, Short, Integer, Long, Float and Double are all immutable. Strings are immutable. StringBuffers are mutable. The only way to change the value of the number inside the object wrapper is to create a new object and point to that instead.

Advantages of Immutablitiy

Returning an Immutable Result

Let us say you wanted to return some data from your method, but you did not want the user to muck with the original. Here are four approaches to the problem:
  1. Wrap the reference in an immutable wrapper class and return that.
  2. Give the caller his own private copy of the data he can muck with to his heart's content. There is high CPU and RAM overhead in the array copying.
  3. Beg or threaten the user not to modify the data in the reference you return to him.
  4. Return an immutable interface to the original data. You can then change fields in the object, but the caller cannot unless he cheats by casting.
Essay on double vs Double.


CMP logo
CMP_home
home
Canadian Mind Products CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[24.87.56.253]
Your IP:[80.134.30.163]
You are visitor number 2682.
Please send errors, omissions and suggestions
to improve this page to Roedy Green.
You can get a fresh copy of this page from: or possibly from your local J: drive mirror:
http://mindprod.com/jgloss/immutable.html J:\mindprod\jgloss\immutable.html