কম্পিউটার টিউটোরিয়াল

জাভাতে স্ট্রিং ইন্টার্নিং (String Interning)


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

যখন 'intern' ফাংশন কল করা হয় -

  • এটি দুটি স্ট্রিংয়ের সমতা চেক করে - স্ট্রিং অবজেক্টটি স্ট্রিং কনস্ট্যান্ট পুল (SCP)-এ উপস্থিত কিনা।

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

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

একটি উদাহরণ নিচে দেখানো হলো:

উদাহরণ

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

Demo ক্লাসে main ফাংশন আছে। এখানে String অবজেক্টের তিনটি ইনস্ট্যান্স সংজ্ঞায়িত করা হয়েছে, যেখানে দ্বিতীয় স্ট্রিংটি প্রথম স্ট্রিংয়ের সাথে একটি ভিন্ন মান কনক্যাটেনেশন। তৃতীয় স্ট্রিংটি দ্বিতীয় স্ট্রিংয়ের ওপর 'intern' ফাংশন কল। এই স্ট্রিংগুলো '==' অপারেটর ব্যবহার করে কমপেয়ার করা হয়েছে এবং ফলাফল কনসোলে প্রদর্শন করা হয়েছে।

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

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

  3. জাভাতে String কে InputStream অবজেক্টে রূপান্তর করা

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