آموزش جاوا - انواع داده های پایه
متغیرها هیچ چیز به جز مکانهای حافظه اختصاص یافته برای ذخیره مقادیر نیستند. این بدان معناست که وقتی یک متغیر ایجاد میکنید، بهصورت مستقیم مقداری از حافظه را رزرو میکنید.
با توجه به نوع دادهای متغیر، سیستم عامل حافظه را تخصیص میدهد و تصمیم میگیرد که چه چیزی در حافظه رزرو شده ذخیره شود. بنابراین، با اختصاص انواع مختلف داده به متغیرها، میتوانید اعداد صحیح، اعداد اعشاری یا کاراکترها را در این متغیرها ذخیره کنید.
در جاوا، دو نوع داده وجود دارد:
- انواع دادههای ابتدایی (Primitive Data Types)
- انواع دادههای مرجع/شیء (Reference/Object Data Types)
انواع داده های پایه
هشت نوع دادهی ابتدایی توسط جاوا پشتیبانی میشوند. این انواع دادههای ابتدایی توسط زبان تعریف شدهاند و با یک کلمهکلیدی نامگذاری شدهاند. حالا به طور دقیق به هشت نوع دادهی ابتدایی نگاه خواهیم کرد.
بایت (byte)
-
نوع دادهی بایت یک عدد صحیح ۸ بیتی با سیگند دومی (two's complement) است.
-
حداقل مقدار آن -۱۲۸ (-۲ به توان ۷) است.
-
حداکثر مقدار آن ۱۲۷ (شامل است) (۲ به توان ۷ منهای ۱) است.
-
مقدار پیشفرض آن ۰ است.
-
نوع دادهی بایت برای صرفهجویی در حافظهی آرایههای بزرگ، عمدتاً به جای اعداد صحیح استفاده میشود؛ زیرا بایت چهار برابر کوچکتر از عدد صحیح است.
-
مثال: byte a = ۱۰۰، byte b = -۵۰
کوتاه (short)
-
نوع دادهی کوتاه یک عدد صحیح ۱۶ بیتی با سیگند دومی است.
-
حداقل مقدار آن -۳۲۷۶۸ (-۲ به توان ۱۵) است.
-
حداکثر مقدار آن ۳۲۷۶۷ (شامل است) (۲ به توان ۱۵ منهای ۱) است.
-
نوع دادهی کوتاه همچنین میتواند برای صرفهجویی در حافظه مورد استفاده قرار بگیرد؛ زیرا کوتاه دو برابر کوچکتر از عدد صحیح است.
-
مقدار پیشفرض آن ۰ است.
-
مثال: short s = ۱۰۰۰۰، short r = -۲۰۰۰۰
صحیح (int)
-
نوع دادهی صحیح یک عدد صحیح ۳۲ بیتی با سیگند دومی است.
-
حداقل مقدار آن -۲۱۴۷۴۸۳۶۴۸ (-۲ به توان ۳۱) است.
-
حداکثر مقدار آن ۲۱۴۷۴۸۳۶۴۷ (شامل است) (۲ به توان ۳۱ منهای ۱) است.
-
عموماً برای اعداد صحیح، صحیح بهعنوان نوع دادهی پیشفرض استفاده میشود، مگر اینکه نگرانی درباره حافظه وجود داشته باشد.
-
مقدار پیشفرض آن ۰ است.
-
مثال: int a = ۱۰۰۰۰۰، int b = -۲۰۰۰۰۰
بلند (long)
- نوع دادهی بلند یک عدد صحیح ۶۴ بیتی با سیگند دومی است.
- حداقل مقدار آن -۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۸ (-۲ به توان ۶۳) است.
- حداکثر مقدار آن ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۷ (شامل است) (۲ به توان ۶۳ منهای ۱) است.
- این نوع داده زمانی استفاده میشود که نیاز به محدودهی بیشتری نسبت به صحیح وجود داشته باشد.
- مقدار پیشفرض آن ۰L است.
- مثال: long a = ۱۰۰۰۰۰L، long b = -۲۰۰۰۰۰L
شناور (float)
-
نوع دادهی شناور یک عدد اعشاری با دقت تکنقطهای ۳۲ بیتی با استاندارد IEEE 754 است.
-
شناور عمدتاً برای صرفهجویی در حافظه در آرایههای بزرگ اعداد اعشاری استفاده میشود.
-
مقدار پیشفرض آن ۰.۰f است.
-
نوع دادهی شناور هرگز برای مقادیر دقیق مانند ارزش ارز استفاده نمیشود.
-
مثال: float f1 = ۲۳۴.۵f
double
-
نوع دادهی double یک عدد اعشاری ۶۴ بیتی با دقت دوگانه و استاندارد IEEE 754 است.
-
این نوع داده عموماً برای مقادیر اعشاری به عنوان نوع دادهی پیشفرض استفاده میشود، به طور کلی انتخاب پیشفرض است.
-
نوع دادهی double هرگز برای مقادیر دقیق مانند ارزش ارز استفاده نمیشود.
-
مقدار پیشفرض آن ۰.۰d است.
-
مثال: double d1 = ۱۲۳.۴
منطقی (boolean)
- نوع دادهی منطقی یک بیت اطلاعات را نشان میدهد.
- تنها دو مقدار ممکن وجود دارد: true و false
- این نوع داده برای پرچمهای ساده که شرایط صحیح/غلط را پیگیری میکنند استفاده میشود.
- مقدار پیشفرض آن false است.
- مثال: boolean one = true
کاراکتر (char)
- نوع دادهی کاراکتر یک کاراکتر یونیکد ۱۶ بیتی است.
- حداقل مقدار آن '\u0000' (یا ۰) است.
- حداکثر مقدار آن '\uffff' (یا ۶۵۵۳۵ شامل است) است.
- نوع دادهی کاراکتر برای ذخیرهسازی هر کاراکتری استفاده میشود.
- مثال: char letterA = 'A'
نوع دادههای مرجع (Reference Datatypes)
-
متغیرهای مرجع با استفاده از سازندههای تعریف شده کلاسها ایجاد میشوند. از آنها برای دسترسی به اشیاء استفاده میشود. این متغیرها به عنوان نوعی خاص تعریف میشوند که قابل تغییر نیستند. برای مثال، کارمند، سگ، و غیره.
-
اشیاء کلاس و انواع مختلفی از متغیرهای آرایه در نوع دادهی مرجع قرار میگیرند.
-
مقدار پیشفرض هر متغیر مرجعی null است.
-
یک متغیر مرجع میتواند برای ارجاع به هر شیء از نوع تعریف شده یا هر نوع سازگار دیگر استفاده شود.
-
مثال: Animal animal = new Animal("زرافه");
مقادیر ثابت جاوا (Java Literals)
مقدار ثابت، نمایش کد منبع یک مقدار ثابت است. آنها بدون هیچ محاسبهای مستقیماً در کد نمایش داده میشوند.
مقادیر ثابت میتوانند به هر نوع متغیر نوع اولیه اختصاص داده شوند. برای مثال −
byte a = 68;
char a = 'A';
مقادیر بایت (byte)، اینت (int)، لانگ (long) و شورت (short) همچنین میتوانند در سیستمهای عددی دسیمال (با پایه ۱۰)، هگزادسیمال (با پایه ۱۶) یا اکتال (با پایه ۸) نمایش داده شوند.
برای نشان دادن اعداد در این سیستمهای عددی در متنها، پیشوند ۰ برای اعداد اکتال و پیشوند ۰x برای اعداد هگزادسیمال استفاده میشود. برای مثال −
int decimal = 100;
int octal = 0144;
int hexa = 0x64;
دستورالعملهای رشته در جاوا همانند بیشتر زبانهای دیگر به صورتی است که یک دنباله از کاراکترها را بین یک جفت نقل قول دوتایی قرار میدهید. مثالهایی از رشتههای ثابت عبارتند از −
مثال
"Hello World"
"two\nlines"
"\"This is in quotes\""
رشتهها (String) و کاراکترها (char) میتوانند حاوی هر کاراکتر یونیکدی باشند. برای مثال −
char a = '\u0001';
String a = "\u0001";
زبان جاوا نیز برای رشتهها (String) و کاراکترها (char) چندین دنبالهی خاص فرار برای نمایش میپذیرد. آنها عبارتند از −
نمادگذاری | کاراکتر نماینده |
---|---|
\n | خط جدید (0x0a) |
\r | رفتن به ابتدای خط (0x0d) |
\f | صفحه بندی (0x0c) |
\b | پاک کردن یک کاراکتر (0x08) |
\s | فاصله (0x20) |
\t | تب |
\" | نقل قول دوتایی |
\' | نقل قول تکی |
\\ | برگشت به عقب |
\ddd | کاراکتر اکتال (ddd) |
\uxxxx | کاراکتر یونیکد هگزادسیمال (xxxx) |