ความหมายของคำว่า mutability คือ สามารถเปลี่ยนแปลงได้ ถ้าเรามองในมุมของออบเจคต์นั่นคือออบเจคต์ยอมให้เปลี่ยนแปลงได้หลังจากถูกสร้างขึ้นมา เช่น การเปลี่ยนข้อมูลในฟิลด์ของออบเจคต์ เป็นต้น ดังนั้น immutability ก็หมายถึงออบเจคต์ที่ไม่สามารถเปลี่ยนแปลงได้นั่นเอง ตัวอย่างของออบเจคต์แบบ immutable เช่น String เมื่อเรากำหนดค่าให้กับตัวแปรที่ชนิดของข้อมูลแบบ String สิ่งที่เกิดขึ้นคือมีการจองพื้นที่ในหน่วยความจำเพื่อเก็บข้อมูลจากนั้นจึงกำหนดที่อยู่ของข้อมูลให้กับตัวแปรอีกทีหนึ่งตามหลักการเก็บข้อมูลของชนิดข้อมูลแบบ reference type หากเราต้องการเปลี่ยนค่าของตัวแปรสิ่งที่เกิดขึ้นคือ พื้นที่หน่วยความจำจะถูกกำหนดให้กับตัวแปรใหม่และกำหนดที่อยู่ของข้อมูลใหม่ให้กับตัวแปร
ออบเจกต์ที่สร้างจากคลาสของเราเองจะเป็น mutable แต่เราก็สามารถสร้างคลาสที่เป็นต้นแบบให้เกิดออบเจต์แบบ immutable ได้ เช่น ไม่ยอมให้แก้ไขค่าฟิลด์ทุกฟิลด์หลังจากที่ออบเจกต์ถูกสร้างขึ้นมาโดยกำหนดให้อ่านได้อย่างเดียวหรือกำหนดเป็นค่าคงที่ (constant) หรือกำหนดฟิลด์เป็น private
immutable ออบเจ็กต์ปลอดภัยต่อเธรด ทดสอบง่ายกว่าและปลอดภัยกว่า เพราะ immutable ออบเจ็กต์สามารถแชร์ระหว่างเธรดต่างๆได้โดยไม่ต้องมีการป้องกันเพิ่มเติม ในกรณีของ mutable ออบเจ็กต์ สถานะของอ็อบเจ็กต์ที่เปลี่ยนแปลงได้ทำให้ยากต่อการติดตามเพราะ สถานะของอ็อบเจ็กต์สามารถเปลี่ยนแปลงได้โดยเธรด