কম্পিউটার

জাভাতে স্ট্রিং ইন্টার্ন() পদ্ধতির ভূমিকা কী?


একটি স্ট্রিং হল জাভাতে একটি শ্রেণী যা অক্ষরগুলির একটি ক্রম সঞ্চয় করে, এটি java.lang-এর অন্তর্গত। প্যাকেজ একবার আপনি একটি স্ট্রিং অবজেক্ট তৈরি করলে আপনি সেগুলি পরিবর্তন করতে পারবেন না (অপরিবর্তনীয়)।

স্টোরেজ

সমস্ত স্ট্রিং অবজেক্ট স্ট্রিং কনস্ট্যান্ট পুল নামে পরিচিত হিপ এলাকায় একটি পৃথক মেমরি অবস্থানে সংরক্ষণ করা হয় .

যখনই আপনি একটি স্ট্রিং মান নির্ধারণ করেন JVM স্ট্রিং ধ্রুবক পুলে প্রদত্ত মান সহ একটি স্ট্রিং অবজেক্ট তৈরি করে। অতএব, আপনি যদি উপরের প্রোগ্রামটি চালান তবে স্ট্রিং ধ্রুবক পুলে দুটি স্ট্রিং মান তৈরি হয়।

জাভাতে স্ট্রিং ইন্টার্ন() পদ্ধতির ভূমিকা কী?

ইন্টার্ন() পদ্ধতি

এই পদ্ধতিটি অনন্য স্ট্রিং মানের পুল থেকে বর্তমান স্ট্রিংয়ের মান প্রদান করে। যখনই আপনি একটি নির্দিষ্ট স্ট্রিং-এ এই পদ্ধতিটি চালু করেন, যদি স্ট্রিং ধ্রুবক পুলে ইতিমধ্যেই এটির সমান একটি স্ট্রিং থাকে (অবজেক্ট ক্লাসের সমান পদ্ধতি অনুসারে), এটি ফেরত দেওয়া হবে। যদি না হয়, বর্তমান স্ট্রিংটি স্ট্রিং ধ্রুবক পুলে যোগ করা হয় এবং এটির একটি রেফারেন্স প্রদান করে৷

অর্থাত্ যদি আপনি একই বিষয়বস্তু সহ দুটি স্ট্রিংয়ে এই পদ্ধতিটি ব্যবহার করেন তবে নিশ্চিত করা হয় যে তারা একই মেমরি শেয়ার করে৷

এই পদ্ধতিটি বেশ কয়েকটি সদৃশ মানের ক্ষেত্রে ব্যাপৃত স্মৃতি কমাতে কার্যকর।

উদাহরণ

নিম্নলিখিতটিতে আমরা একই বিষয়বস্তু সহ দুটি স্ট্রিং (নতুন কীওয়ার্ড ব্যবহার করে) তৈরি করছি এবং “==” অপারেটর ব্যবহার করে তাদের তুলনা করছি। যদিও উভয় বস্তুর একই মান আছে, যেহেতু তারা একই বস্তু (মেমরি) উল্লেখ করে না ফলাফল মিথ্যা হবে।

public class InternExample {
   public static void main(String args[]) {
      String str1 = new String("Hello");
      str1 = str1.intern();
      String str2 = "Hello";
      str2 = str2.intern();
      System.out.println(str1.equals(str2));
   }
}

আউটপুট

false

কিন্তু, যদি আপনি উভয় বস্তুর তুলনা করার আগে ইন্টার্ন পদ্ধতি ব্যবহার করেন, যেহেতু এটি নিশ্চিত করে যে উভয় বস্তু একই মেমরি শেয়ার করে যদি তাদের একই বিষয়বস্তু থাকে তাহলে ফলাফলটি সত্য হবে।

public class InternExample {
   public static void main(String args[]) {
      String str1 = new String("Hello");
      str1 = str1.intern();
      String str2 = new String("Hello");
      str2 = str2.intern();
      System.out.println(str1==str2);
   }
}

আউটপুট

true

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

  2. জাভাতে একটি চূড়ান্ত() পদ্ধতি ওভাররাইড করার উদ্দেশ্য কী?

  3. জাভাতে স্ট্রিং রাইটারের গুরুত্ব কী?

  4. জাভাতে setBounds() পদ্ধতির ব্যবহার কি?