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

জাভাতে স্ট্রিং লিটারেল স্ট্রিং কনস্ট্যান্ট পুলে কেন সংরক্ষিত হয়

জাভাতে স্ট্রিং অবজেক্ট তৈরি করার দুটি উপায় রয়েছে:

  • new অপারেটর ব্যবহার করে
String str = new String("Tutorials Point");
  • স্ট্রিং লিটারেল ব্যবহার করে
String str = "Tutorials Point";

যখনই জাভাতে new String() কল করা হয়, এটি হিপ মেমরিতে একটি অবজেক্ট তৈরি করে এবং স্ট্রিং লিটারেলগুলো স্ট্রিং কনস্ট্যান্ট পুল (SCP)-এ চলে যায়।

অবজেক্টের জন্য JVM SCP ব্যবহার করে যাতে জাভাতে দক্ষ মেমরি ম্যানেজমেন্ট হয়। অন্যান্য জাভা অবজেক্টের মত হিপ এরিয়ায় স্ট্রিং অবজেক্ট ম্যানেজ না করে স্ট্রিং কনস্ট্যান্ট পুল চালু করা হয়েছে। SCP-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল এটি একই স্ট্রিং অবজেক্ট دوبারা তৈরি করে না যদি পুলে ইতিমধ্যে সেটি থাকে।

উদাহরণ

public class SCPDemo {
    public static void main (String args[]) {
        String s1 = "Tutorials Point";
        String s2 = "Tutorials Point";
        System.out.println("s1 and s2 are string literals:");
        System.out.println(s1 == s2);
        String s3 = new String("Tutorials Point");
        String s4 = new String("Tutorials Point");
        System.out.println("s3 and s4 with new operator:");
        System.out.println(s3 == s4);
    }
}

আউটপুট

s1 and s2 are string literals: true
s3 and s4 with new operator: false
  1. জাভাতে StringIndexOutOfBoundsException কী?

  2. জাভাতে হিপ মেমরি এবং স্ট্রিং কনস্ট্যান্ট পুলের পার্থক্য

  3. জাভাতে স্ট্রিং লিটারেল স্ট্রিং কনস্ট্যান্ট পুলে কেন সংরক্ষিত হয়

  4. জাভাতে String ক্লাস ইমিউটেবল বা ফাইনাল কেন