কম্পিউটার

কেন স্ট্রিং ক্লাস জাভাতে অপরিবর্তনীয় বা চূড়ান্ত?


স্ট্রিংটি অপরিবর্তনীয় মানে আমরা বস্তুটিকে নিজেই পরিবর্তন করতে পারি না, তবে আমরা বস্তুর রেফারেন্স পরিবর্তন করতে পারি। অন্যদের এটিকে প্রসারিত করতে এবং এর অপরিবর্তনীয়তা নষ্ট করার অনুমতি না দেওয়ার জন্য স্ট্রিংটিকে চূড়ান্ত করা হয়েছে৷

  • নিরাপত্তা প্যারামিটারগুলি সাধারণত নেটওয়ার্ক সংযোগ, ডাটাবেস সংযোগ URL, ব্যবহারকারীর নাম/পাসওয়ার্ড ইত্যাদিতে স্ট্রিং হিসাবে উপস্থাপিত হয়৷ যদি এটি পরিবর্তনযোগ্য হয় তবে এই প্যারামিটারগুলি সহজেই পরিবর্তন করা যেতে পারে৷
  • সিঙ্ক্রোনাইজেশন এবং কনকারেন্সি স্ট্রিংকে স্বয়ংক্রিয়ভাবে অপরিবর্তনীয় করে থ্রেড সুরক্ষিত করে যাতে সিঙ্ক্রোনাইজেশন সমস্যাগুলি সমাধান করা হয়।
  • ক্যাশিং যখন কম্পাইলার আমাদের স্ট্রিং অবজেক্ট অপ্টিমাইজ করে, তখন মনে হয় যদি দুটি অবজেক্টের মান একই থাকে (a =" test", এবং b =" test") এবং এইভাবে আমাদের শুধুমাত্র একটি স্ট্রিং অবজেক্ট প্রয়োজন (a এবং b উভয়ের জন্য, এই দুটি নির্দেশ করবে একই বস্তুতে)।
  • ক্লাস লোড হচ্ছে স্ট্রিং ক্লাস লোড করার জন্য আর্গুমেন্ট হিসাবে ব্যবহৃত হয়। যদি মিউটেবল হয়, তাহলে এর ফলে ভুল ক্লাস লোড হতে পারে (কারণ মিউটেবল অবজেক্ট তাদের অবস্থা পরিবর্তন করে)।

উদাহরণ:

public class StringImmutableDemo {
   public static void main(String[] args) {
      String st1 = "Tutorials";
      String st2 = "Point";
      System.out.println("The hascode of st1 = " + st1.hashCode());
      System.out.println("The hascode of st2 = " + st2.hashCode());
      st1 = st1 + st2;
      System.out.println("The Hashcode after st1 is changed : "+ st1.hashCode());
   }
}

আউটপুট:

The hascode of st1 = -594386763
The hascode of st2 = 77292912
The Hashcode after st1 is changed : 962735579

  1. জাভাতে ফাইনাল ক্লাস

  2. জাভাতে চূড়ান্ত পরিবর্তনশীল

  3. জাভাতে চূড়ান্ত কীওয়ার্ড

  4. কেন একাধিক উত্তরাধিকার জাভাতে সমর্থিত নয়