জাভাতে ডেটা টাইপ দুটি প্রধান শ্রেণিতে বিভক্ত: প্রিমিটিভ ডেটা টাইপ (Primitive Data Types) এবং নন-প্রিমিটিভ ডেটা টাইপ (Non-Primitive Data Types)। এই দুটি টাইপের মধ্যে পার্থক্য এবং ব্যবহার সম্পর্কে বিস্তারিত জানার মাধ্যমে আপনি Java প্রোগ্রামিংয়ে দক্ষতা অর্জন করতে পারেন।
১. প্রিমিটিভ ডেটা টাইপ (Primitive Data Types):
প্রিমিটিভ ডেটা টাইপগুলি জাভাতে প্রাথমিক ডেটা ধারণের জন্য ব্যবহৃত হয়। এগুলি সিস্টেমের নিজস্ব ডেটা টাইপ এবং এগুলির জন্য কোনো ক্লাস বা অবজেক্ট তৈরি করতে হয় না। প্রিমিটিভ টাইপগুলি সরাসরি মান ধারণ করে এবং এগুলোর মেমরি সাইজ পূর্বনির্ধারিত থাকে।
প্রিমিটিভ ডেটা টাইপের ধরন:
- byte
- Size: 1 byte (8 bits)
- Range: -128 to 127
- এটি খুব ছোট পরিমাণের পূর্ণসংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়।
- Example:
byte b = 100;
- short
- Size: 2 bytes (16 bits)
- Range: -32,768 to 32,767
- ছোট পূর্ণসংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়।
- Example:
short s = 10000;
- int
- Size: 4 bytes (32 bits)
- Range: -2,147,483,648 to 2,147,483,647
- অধিকাংশ পূর্ণসংখ্যা মান সংরক্ষণ করতে ব্যবহৃত হয়।
- Example:
int i = 100000;
- long
- Size: 8 bytes (64 bits)
- Range: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
- বড় পূর্ণসংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়।
- Example:
long l = 10000000000L;
- float
- Size: 4 bytes (32 bits)
- Range: 1.4E-45 to 3.4E+38
- দশমিক সংখ্যা বা ভাসমান পয়েন্ট সংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়।
- Example:
float f = 3.14f;
- double
- Size: 8 bytes (64 bits)
- Range: 4.9E-324 to 1.8E+308
- দশমিক সংখ্যা বা উচ্চ প্রিসিশন ভাসমান পয়েন্ট সংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়।
- Example:
double d = 3.141592653589793;
- char
- Size: 2 bytes (16 bits)
- Range: 0 to 65,535 (Unicode characters)
- একটি একক অক্ষর বা চিহ্ন সংরক্ষণ করতে ব্যবহৃত হয়।
- Example:
char c = 'A';
- boolean
- Size: 1 bit (Java Virtual Machine এর বাস্তবায়নের উপর নির্ভর করে)
- Range:
trueবাfalse - সত্য বা মিথ্যা মান সংরক্ষণ করতে ব্যবহৃত হয়।
- Example:
boolean flag = true;
প্রিমিটিভ ডেটা টাইপের বৈশিষ্ট্য:
- এগুলি সরাসরি মান ধারণ করে এবং সাধারণত দ্রুততর।
- এগুলি immutable (অপরিবর্তনশীল)।
- এগুলি মেমরি-এফিসিয়েন্ট এবং কম সাইজের হয়।
- এগুলির কোনো পদ্ধতি বা মেথড নেই।
২. নন-প্রিমিটিভ ডেটা টাইপ (Non-Primitive Data Types):
নন-প্রিমিটিভ ডেটা টাইপগুলি সাধারণত অবজেক্ট বা ক্লাস প্রতিনিধিত্ব করে এবং এগুলি প্রোগ্রামারদের দ্বারা ডেফাইন করা হয়। নন-প্রিমিটিভ ডেটা টাইপের মধ্যে যেমন String, Arrays, Classes, Interfaces ইত্যাদি অন্তর্ভুক্ত।
নন-প্রিমিটিভ ডেটা টাইপের ধরন:
- String
- একটি নন-প্রিমিটিভ ডেটা টাইপ যা অক্ষরের একটি সিরিজ ধারণ করে। এটি immutable (অপরিবর্তনশীল)।
- Example:
String str = "Hello, Java!";
- Arrays
- ডেটা আইটেমগুলির একটি সংগ্রহ যা একই ধরনের হতে হবে।
- Example:
int[] numbers = {1, 2, 3, 4};
- Class
- জাভাতে Object-Oriented Programming (OOP) এর মূল ধারণা। একটি ক্লাস ডেটা এবং মেথডগুলির সংমিশ্রণ।
Example:
class Person { String name; int age; // Constructor, methods, etc. }
- Interface
- একটি অব্যবহৃত পদ্ধতির সংকলন যা শুধুমাত্র সিগনেচার থাকে, কোনো বাস্তবায়ন থাকে না। ক্লাস ইন্টারফেসটি বাস্তবায়ন করে।
Example:
interface Animal { void sound(); }
- Enumeration (enum)
- একটি বিশেষ ধরনের ক্লাস যা পূর্বনির্ধারিত কনস্ট্যান্টের তালিকা তৈরি করতে ব্যবহৃত হয়।
Example:
enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
নন-প্রিমিটিভ ডেটা টাইপের বৈশিষ্ট্য:
- এগুলি mutable (পরিবর্তনশীল) হতে পারে।
- এগুলি objects এর মাধ্যমে কাজ করে এবং তাদের মেমরি অ্যাড্রেস ধারণ করে।
- এগুলি সাধারণত referenced (রেফারেন্স) টাইপ, মান সরাসরি স্টোর করা হয় না, বরং তার রেফারেন্স (অথবা পয়েন্টার) স্টোর করা হয়।
- এগুলি ক্লাস বা অবজেক্টের সদস্য হিসেবে থাকতে পারে এবং মেথডের মাধ্যমে এর মান পরিবর্তন করা যায়।
প্রিমিটিভ এবং নন-প্রিমিটিভ ডেটা টাইপের মধ্যে পার্থক্য:
| বিষয় | প্রিমিটিভ ডেটা টাইপ | নন-প্রিমিটিভ ডেটা টাইপ |
|---|---|---|
| সংরক্ষিত ডেটা | সরাসরি মান সংরক্ষণ করে | অবজেক্টের রেফারেন্স সংরক্ষণ করে |
| আকার | ফিক্সড আকার (সর্বোচ্চ 8 বাইট) | আকার পরিবর্তনশীল |
| মেমরি ব্যবস্থাপনা | মেমরিতে কম জায়গা নেয় | অধিক মেমরি ব্যবহৃত হয় |
| অবজেক্ট | অবজেক্ট নয় | অবজেক্টের রেফারেন্স হিসেবে কাজ করে |
| এনক্যাপসুলেশন | এনক্যাপসুলেশন থাকে না | অবজেক্টের মাধ্যমে এনক্যাপসুলেশন হয় |
| পদ্ধতি ও মেথড | কোনো পদ্ধতি বা মেথড নেই | পদ্ধতি বা মেথড থাকতে পারে |
- প্রিমিটিভ ডেটা টাইপ হল মৌলিক ডেটা টাইপ, যা সরাসরি মান ধারণ করে এবং কম মেমরি নেয়।
- নন-প্রিমিটিভ ডেটা টাইপ হল অবজেক্ট টাইপ, যা রেফারেন্স ধারণ করে এবং আরও বেশি সুবিধা প্রদান করে, তবে মেমরি ব্যবহারের ক্ষেত্রে বেশি জায়গা নেয়।
- Java তে প্রিমিটিভ টাইপ সাধারণত গাণিতিক ও সহজ ডেটা পরিচালনার জন্য ব্যবহার করা হয়, এবং নন-প্রিমিটিভ টাইপ জটিল ডেটা কাঠামো এবং অবজেক্ট ম্যানিপুলেশনের জন্য ব্যবহৃত হয়।
Read more