Blog top image

Why Is String an Immutable Class?


String কেন ইমিউটেবল সেটা বুঝতে হলে আগে ইমিউটেবল জিনিসটা বুঝতে হবে। ইমিউটেবল হচ্ছে একটা যাকে তৈরি করা হয়েছে, তাকে আপডেট বা মোডিফাই করা যায় না। String যেহেতু একটা অবজেক্ট, তাই যদি একটা একটা String তৈরি করা হয়, তাহলে সেটাকে আর আপডেট বা মোডিফাই করা সম্ভব না। 

ইমিউটেবল String এর প্রয়োজনীয়তা 

- জাভাতে String একটা স্পেশাল অবজেক্ট এবং একটা String যখন তৈরি হয়, সেটাকে String pool নামের স্পেশাল মেমোরিতে জমা করে। এই pool যেটা করে সেটা হচ্ছে, যদি pool এ String না থাকে তাহলে সেই String pool এ যুক্ত করা হয়, আর যদি আগে থেকে থেকে থাকে, তাহলে নতুন করে তৈরি না করে pool থেকে তার রেফারেন্স দিয়ে দেয়া হয়। 

- জাভাতে সেনসিটিভ ইনফরমেশন যেমন ইউজার নেম, পাসওয়ার্ড ইত্যাদি স্ট্রিং আকারে রাখা হয়। স্টিং যেহেতু ইমিউটেবল, তাই এটা গ্যারেন্টেড যে মাঝপথে কেউ সেনসিটিভ ইনফরমেশন পরিবর্তন করতে পারবে না 

- স্টিং ইমিউটেবল হওয়ার কারণে সহজেই মাল্টি থ্রেডেড অ্যাপ্লিকেশন ব্যবহার করা যায়। কোন প্রকার সিংক্রনাইজেশন দরকার পরে না 

- স্ট্রিং ইমিউটেবল হওয়ার কারণে হ্যাশমেপের Key হিসাবে ব্যাপকভাবে ব্যবহার করা হয়। এর কারণ হচ্ছে কেউ মাঝপথে স্ট্রিং কে পরিবর্তন করতে পারবে না