কম্পিউটার

জাভাতে স্ট্রিং এর ইন্টারনিং


স্ট্রিং ইন্টারনিং এমন একটি প্রক্রিয়া যেখানে প্রতিটি স্বতন্ত্র স্ট্রিং মানের একটি একক অনুলিপি সংরক্ষণ করা হয়। এটি ছাড়াও, স্ট্রিংগুলিও পরিবর্তন করা যাবে না। এইভাবে, স্ট্রিং একই ডেটা ধারণ করতে পারে সেইসাথে একই মেমরি শেয়ার করতে পারে। এইভাবে, প্রয়োজনীয় মেমরি অনেক কমে যাবে।

যখন 'ইন্টার্ন' ফাংশনকে −

বলা হয়
  • এটি দুটি স্ট্রিংয়ের মধ্যে সমতা পরীক্ষা করে- স্ট্রিং অবজেক্টটি স্ট্রিং কনস্ট্যান্ট পুলে (এসসিপি) উপস্থিত আছে কিনা।

  • যদি পাওয়া যায়, স্ট্রিংটি পুল থেকে এনে ফিরিয়ে দেওয়া হয়। অন্যথায়, একটি নতুন স্ট্রিং অবজেক্ট তৈরি করা হয় এবং পুলে যোগ করা হয়। এই স্ট্রিং অবজেক্টের একটি রেফারেন্সও ফেরত দেওয়া হয়েছে।

  • যদি দুটি স্ট্রিং 'a', এবং 'b'-এর জন্য, a.intern() ==b.intern() সত্য হয় যদি a.equals(b) সত্য ফেরত দেয়।

আসুন একটি উদাহরণ দেখি -

উদাহরণ

public class Demo{
   public static void main(String[] args){
      String s1 = new String("Its");
      String s2 = s1.concat("sample");
      String s3 = s2.intern();
      System.out.println("Checking equality of object 2 and 3 :");
      System.out.println(s2 == s3);
      String s4 = "Its a sample";
      System.out.println("Checking equality of object 3 and 4 :");
      System.out.println(s3 == s4);
   }
}

আউটপুট

Checking equality of object 2 and 3 :
true
Checking equality of object 3 and 4 :
false

ডেমো নামের একটি ক্লাসে প্রধান ফাংশন রয়েছে। এখানে স্ট্রিং অবজেক্টের তিনটি দৃষ্টান্ত সংজ্ঞায়িত করা হয়েছে, যেখানে দ্বিতীয় স্ট্রিংটি একটি ভিন্ন মানের সাথে প্রথম স্ট্রিংয়ের সংমিশ্রণ। তৃতীয় স্ট্রিংটি দ্বিতীয় স্ট্রিং-এ 'ইন্টার্ন'-এর জন্য একটি ফাংশন কল। এই স্ট্রিংগুলিকে ‘==’ অপারেটর ব্যবহার করে তুলনা করা হয় এবং ফলাফল কনসোলে প্রদর্শিত হয়।


  1. জাভাতে StringIndexOutOfBoundsException কি?

  2. কিভাবে আমরা জাভাতে একটি JSON স্ট্রিংকে JSON অবজেক্টে রূপান্তর করতে পারি?

  3. জাভাতে একটি স্ট্রিংকে একটি ইনপুটস্ট্রিম অবজেক্টে কীভাবে রূপান্তর করবেন?

  4. জাভাতে পলিমরফিজম