জাভাতে, ' ইন্টার্ন() ” পদ্ধতিটি নিশ্চিত করার জন্য ব্যবহৃত হয় যে যদি প্রচুর পরিমাণে স্ট্রিং ডেটা সঞ্চয় করে তবে একই উপাদান থাকা স্ট্রিংগুলি একই মেমরি ভাগ করে। এই পদ্ধতিটি প্রোগ্রামের মেমরি স্পেস কমানোর জন্য খুবই উপযোগী। উদাহরণস্বরূপ, যদি আপনার কাছে কর্মচারীদের নামের একটি বিশাল তালিকা থাকে যেখানে নাম ' জ্যাক ” দশবার উপস্থিত হয়। দ্য ' ইন্টার্ন() 'পদ্ধতি নিশ্চিত করবে যে ' জ্যাক ” স্মৃতিতে শুধুমাত্র একটি স্থান দখল করে।
এই পোস্টটি জাভাতে String.intern() পদ্ধতির ব্যবহার নিয়ে আলোচনা করবে।
জাভাতে String.intern() কি?
দ্য ' ইন্টার্ন() জাভাতে ” পদ্ধতিটি উল্লিখিত স্ট্রিং অবজেক্টের রেফারেন্স ফেরত দেওয়ার জন্য ব্যবহার করা হয়। যাইহোক, যদি স্ট্রিং পুলে একই বিষয়বস্তু/ডেটা সহ স্ট্রিং অবজেক্টটি বিদ্যমান থাকে, তাহলে এটি পূর্ববর্তী স্ট্রিংয়ের রেফারেন্স ফিরিয়ে দেবে। উপরন্তু, যদি স্ট্রিংটি স্ট্রিং পুলে বিদ্যমান না থাকে তবে এটি নতুন স্ট্রিং এবং স্ট্রিং পুলে এর রেফারেন্স যোগ করবে।
বাক্য গঠন
উল্লিখিত পদ্ধতিটি ব্যবহার করতে, নীচে দেওয়া বাক্য গঠনটি অনুসরণ করুন:
স্ট্রিং . ইন্টার্ন ( )
এই উদাহরণে, আমরা আলোচনা করব কেন ব্যবহার করার প্রয়োজন আছে ' ইন্টার্ন() ' মেথড জাভাতে যখন স্ট্রিংটি হিপে তৈরি করা হয় ' স্ট্রিং() 'নির্মাতা। প্রথমে, একটি স্ট্রিং অবজেক্ট তৈরি করা হয় ' স্ট্রিং() 'নির্মাতা। এর পরে, স্ট্রিংয়ের ডেটা এই বস্তুতে প্যারামিটার হিসাবে পাস করা হয় এবং একটি পরিবর্তনশীলে সংরক্ষণ করা হয়:
স্ট্রিং ক = নতুন স্ট্রিং ( 'লিনাক্সহিন্টে স্বাগতম।' ) ;
একই পদ্ধতি অনুসরণ করে আরেকটি স্ট্রিং অবজেক্ট তৈরি করা হয়েছে:
স্ট্রিং খ = নতুন স্ট্রিং ( 'লিনাক্সহিন্টে স্বাগতম' ) ;আহ্বান করুন ' println()' পদ্ধতি এবং 'a=b' সেট করুন ” এই পদ্ধতির যুক্তি হিসাবে। এটি ফলাফলটিকে মিথ্যা হিসাবে ফিরিয়ে দেবে কারণ প্রতিটি স্ট্রিংয়ের মেমরিতে নিজস্ব স্থান রয়েছে:
পদ্ধতি . আউট . println ( ক == খ ) ;
এটি লক্ষ্য করা যেতে পারে যে উপরে উল্লিখিত উদাহরণের আউটপুট মিথ্যা ফেরত দেয়:
উদাহরণ 1: স্ট্রিং অবজেক্ট চেক করার জন্য String.intern() পদ্ধতি
এই উদাহরণে, '' ব্যবহার করে দুটি স্ট্রিং অবজেক্ট তৈরি করা হয় স্ট্রিং() কনস্ট্রাক্টর এবং একটি স্ট্রিং একটি আর্গুমেন্ট হিসাবে কনস্ট্রাক্টরের কাছে পাঠানো হয়। এরপরে, ' ইন্টার্ন() 'প্রতিটি স্ট্রিংয়ের জন্য পদ্ধতি এবং ভেরিয়েবলে প্রথম স্ট্রিং সংরক্ষণ করুন' ক 'এবং দ্বিতীয়টি 'এ খ ” অবস্থা পরীক্ষা করুন ' a=b ' এবং ' ব্যবহার করুন println() ফলাফল প্রদর্শন করতে:
স্ট্রিং ক = নতুন স্ট্রিং ( 'লিনাক্সহিন্টে স্বাগতম' ) . ইন্টার্ন ( ) ;স্ট্রিং খ = নতুন স্ট্রিং ( 'লিনাক্সহিন্টে স্বাগতম' ) . ইন্টার্ন ( ) ;
পদ্ধতি . আউট . println ( ক == খ ) ;
ফলস্বরূপ, এটি ' সত্য 'মান কারণ ' ইন্টার্ন() ” পদ্ধতি নিশ্চিত করে যে প্রতিটি স্ট্রিং স্ট্রিং ডেটা সংরক্ষণ করতে একই মেমরিতে স্থান দখল করেছে:
উদাহরণ 2: স্ট্রিং এবং স্ট্রিং অবজেক্ট চেক করার জন্য String.intern() পদ্ধতি
এই উল্লিখিত উদাহরণে, বিভিন্ন স্ট্রিং তৈরি এবং বিভিন্ন ভেরিয়েবলে সংরক্ষণ করা হয়। এই উদ্দেশ্যে, প্রথমে, একটি ভেরিয়েবলকে একটি স্ট্রিং মান দিয়ে শুরু করা হয় “ লিনাক্স ”:
স্ট্রিং ক = 'লিনাক্স' ;ব্যবহার করুন ' ইন্টার্ন() স্ট্রিং অ্যাক্সেস করে পদ্ধতি ' ক 'এবং এটি ভেরিয়েবলে সংরক্ষণ করুন' খ ”:
স্ট্রিং খ = ক ইন্টার্ন ( ) ;'এর সাহায্যে একটি নতুন স্ট্রিং-টাইপ অবজেক্ট তৈরি করা হয় স্ট্রিং() 'নির্মাণকারী এবং পাস করে' লিনাক্স ” এই কনস্ট্রাক্টরের পরামিতি হিসাবে। তারপর, এটি ভেরিয়েবলে সংরক্ষণ করুন ' গ ”:
স্ট্রিং গ = নতুন স্ট্রিং ( 'লিনাক্স' ) ;
আহ্বান করুন ' ইন্টার্ন() 'ভেরিয়েবল অ্যাক্সেস করে পদ্ধতি' গ 'এবং ফলাফলটি 'এ সংরক্ষণ করুন d ”:
স্ট্রিং d = গ. ইন্টার্ন ( ) ;এখন, এই তৈরি করা স্ট্রিংগুলি একে অপরের সাথে তুলনা করুন। সেই উদ্দেশ্যে, ' println() ' পদ্ধতি এবং নীচের কোড স্নিপেট অনুযায়ী প্যারামিটার পাস:
পদ্ধতি . আউট . println ( ক == খ ) ;পদ্ধতি . আউট . println ( ক == গ ) ;
পদ্ধতি . আউট . println ( ক == d ) ;
পদ্ধতি . আউট . println ( খ == গ ) ;
পদ্ধতি . আউট . println ( খ == d ) ; পদ্ধতি . আউট . println ( গ == d ) ;
প্রতিটি সংশ্লিষ্ট স্টেটমেন্টের আউটপুট কনসোলে প্রিন্ট করা হয়। আমরা প্রতিটি বিবৃতি দিয়ে আউটপুট ম্যাপ করেছি:
এটি জাভাতে string.intern() পদ্ধতি সম্পর্কে।
উপসংহার
দ্য ' String.intern() ' জাভাতে পদ্ধতিটি উল্লেখিত স্ট্রিং অবজেক্টের রেফারেন্স প্রদান করে। যাইহোক, যদি স্ট্রিং পুলে একই বিষয়বস্তু/ডেটা সহ স্ট্রিং অবজেক্টটি বিদ্যমান থাকে, তাহলে এটি পূর্ববর্তী স্ট্রিংয়ের রেফারেন্স ফিরিয়ে দেবে। এই পোস্টে জাভাতে String.intern() পদ্ধতির বিভিন্ন ব্যবহারের ক্ষেত্রে বলা হয়েছে।