انواع داده (Java Data Types)
انواع داده (Data Types): دستهبندی دقیق اطلاعات 🏗️🔢
در جاوا، انواع داده به دو گروه بزرگ تقسیم میشوند: Primitive (اولیه) و Non-Primitive (غیر اولیه یا ارجاعی).
۱. انواع داده اولیه (Primitive)
اینها سادهترین انواع داده هستند که مقادیر را مستقیماً ذخیره میکنند. ۸ نوع وجود دارد:
- byte: اعداد بسیار کوچک (-128 تا 127) - ۱ بایت حافظه.
- short: اعداد کوچک - ۲ بایت حافظه.
- int: اعداد صحیح معمولی (پیشفرض) - ۴ بایت حافظه.
- long: اعداد بسیار بزرگ (باید در انتها
Lبگذارید) - ۸ بایت حافظه. - float: اعداد اعشاری (باید در انتها
fبگذارید) - ۴ بایت. - double: اعداد اعشاری با دقت بالا (پیشفرض) - ۸ بایت.
- boolean: فقط 1 بیت (true/false).
- char: تک کاراکتر یونیکد - ۲ بایت.
byte به جای int باعث صرفهجویی در حافظه میشود (در پروژههای عظیم این تفاوت چشمگیر است).
۲. انواع داده غیر اولیه (Non-Primitive)
به اینها Reference Types هم میگویند چون به اشیاء (Objects) اشاره میکنند. تفاوتهای اصلی اینها با انواع اولیه:
- انواع اولیه از قبل تعریف شدهاند، اما انواع ارجاعی توسط برنامهنویس ساخته میشوند (به جز String).
- انواع ارجاعی میتوانند متد (Method) داشته باشند تا عملیاتی را انجام دهند.
- یک متغیر ارجاعی میتواند مقدار
nullداشته باشد، اما انواع اولیه همیشه باید مقداری داشته باشند.
مثال عددی:
{code_block('float myWeight = 75.5f;\ndouble pi = 3.1415926535;\nchar grade = \'A\';\nboolean isJavaFun = true;')}f بگذاریم؟ چون جاوا به صورت پیشفرض تمام اعداد اعشاری را double میداند و برای متمایز کردن آنها به این نشانه نیاز دارد.
بخش تخصصی: عمیقتر در دنیای جاوا 🛠️💎
در این بخش، به نکاتی میپردازیم که در سطح حرفهای و مصاحبههای کاری بسیار مهم هستند.
۱. مدیریت حافظه (Memory Management)
در جاوا، دادهها در دو بخش از حافظه ذخیره میشوند: Stack و Heap. انواعِ داده اولیه (Primitives) معمولاً در Stack ذخیره میشوند که سرعت دسترسی به آنها بسیار بالاست. اشیاء و آرایهها در Heap ذخیره میشوند که حجم بیشتری دارد اما مدیریت آن توسط Garbage Collector انجام میشود. درک این تفاوت، کلید اصلی برای نوشتن برنامههای بهینه است.
۲. مفاهیم امنیت در سطح زبان
جاوا یکی از امنترین زبانهاست چون اجازه دسترسی مستقیم به آدرسهای فیزیکی حافظه (مانند اشارهگرها در C++) را نمیدهد. مضاف بر این، وجود Bytecode Verifier قبل از اجرا، تضمین میکند که کدهای مخرب یا نامعتبر اجرا نشوند.
۳. کدهای تمیز (Clean Code)
در پروژههای تیمی، خوانایی کد مهمتر از هوشمندانه بودن آن است. همیشه از نامهای معنادار برای متغیرها استفاده کنید (مثلاً به جای a از userAge استفاده کنید). همچنین رعایتِ CamelCase و استفاده درست از کامنتها، نگهداری پروژه را در آینده بسیار سادهتر میکند.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
یک متغیر برای ذخیره نمره معدل (مثلاً 18.75) با دقت معمولی (کمترین حافظه ممکن برای اعشار) تعریف کنید و آن را چاپ کنید.
public class Main {
public static void main(String[] args) {
float gpa = 18.75f;
System.out.println(gpa);
}
}
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.