آموزش Java به صورت پروژه‌محور: سریع، کاربردی و حرفه‌ای |جلسه سیزدهم:انواع داده‌ها در جاوا 
جاوا؛ زبان آینده‌دار

آموزش Java به صورت پروژه‌محور: سریع، کاربردی و حرفه‌ای |جلسه سیزدهم:انواع داده‌ها در جاوا 

انواع داده‌ها در جاوا

انواع داده‌ها در جاوا نوع و محدوده مقادیر داده‌ای را برای متغیرهای مختلف، ثابت‌ها، پارامترهای متد، انواع بازگشتی و غیره تعریف می‌کنند. نوع داده به کامپایلر می‌گوید که چه نوع داده‌ای باید ذخیره شود و حافظه مورد نیاز برای آن را تعیین می‌کند. برای ذخیره و دستکاری انواع مختلف داده‌ها، همه متغیرها باید نوع داده مشخصی داشته باشند.

براساس نوع داده یک متغیر، سیستم‌عامل حافظه اختصاص داده و تصمیم می‌گیرد که چه چیزی می‌تواند در حافظه رزرو شده ذخیره شود. بنابراین، با اختصاص انواع داده‌های مختلف به متغیرها، می‌توانید اعداد صحیح، اعشاری یا کاراکترها را در این متغیرها ذخیره کنید.

انواع داده‌های جاوا به دو دسته اصلی تقسیم می‌شوند:

  1. انواع داده‌های اولیه (Primitive Data Types)
  2. انواع داده‌های مرجع/شیء (Reference/Object Data Types)

انواع داده‌های اولیه جاوا

انواع داده‌های اولیه توسط زبان تعریف شده و با استفاده از کلمه‌کلیدی مشخص می‌شوند. جاوا هشت نوع داده اولیه را پشتیبانی می‌کند. در زیر فهرستی از انواع داده‌های اولیه آمده است:

  • byte
  • short
  • int
  • long
  • float
  • double
  • boolean

نوع داده byte

نوع داده byte یک عدد صحیح 8 بیتی با علامت و مکمل دو است که حداقل مقدار آن -128 (-2^7) و حداکثر مقدار آن 127 (شامل) (2^7 -1) است.

مقدار پیش‌فرض یک متغیر byte برابر با 0 است که برای صرفه‌جویی در فضا در آرایه‌های بزرگ استفاده می‌شود. این بیشتر برای اعداد صحیح مفید است چون یک byte چهار برابر کوچکتر از یک عدد صحیح (integer) است.

مثال

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
byte a = 100;
byte b = -50;
byte a = 100; byte b = -50;
byte a = 100;
byte b = -50;

نوع داده short

نوع داده short یک عدد صحیح 16 بیتی با علامت و مکمل دو است که محدوده مقادیر آن از -32,768 (-2^15) تا 32,767 (شامل) (2^15 -1) است. مانند نوع داده byte، نوع داده short نیز برای صرفه‌جویی در حافظه مفید است، زیرا فضای کمتری را نسبت به یک عدد صحیح (integer) اشغال می‌کند و فقط نصف اندازه آن است.

مقدار پیش‌فرض یک متغیر short برابر با 0 است.

مثال

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
short s = 10000;
short r = -20000;
short s = 10000; short r = -20000;
short s = 10000;
short r = -20000;

نوع داده int

نوع داده int یک عدد صحیح 32 بیتی با علامت و مکمل دو است که محدوده مقادیر آن از -2,147,483,648 (-2^31) تا 2,147,483,647 (شامل) (2^31 -1) است. در اینجا، عدد صحیح معمولاً به عنوان نوع داده پیش‌فرض برای مقادیر صحیح استفاده می‌شود مگر اینکه نگرانی در مورد حافظه وجود داشته باشد.

مقدار پیش‌فرض یک متغیر int برابر با 0 است.

مثال

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
int a = 100000;
int b = -200000;
int a = 100000; int b = -200000;
int a = 100000;
int b = -200000;

نوع داده‌ای long

نوع داده‌ای long یک عدد صحیح ۶۴ بیتی با علامت (signed) و با قالب مکمل دو (two’s complement) است که قادر به نمایش دامنه وسیعی از مقادیر از ‎-9,223,372,036,854,775,808‎ (‏-2⁶³‏) تا ‎9,223,372,036,854,775,807‎ (شامل) ‏(2⁶³ – 1)‏ می‌باشد. این نوع داده زمانی استفاده می‌شود که دامنه‌ای وسیع‌تر از int مورد نیاز باشد. مقدار پیش‌فرض آن 0L است.

مثال

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
long a = 100000L;
long b = -200000L;
long a = 100000L; long b = -200000L;
long a = 100000L;
long b = -200000L;

نوع داده‌ای float

نوع داده‌ای float یک نمایش عدد اعشاری با دقت واحد (single-precision) و به صورت ۳۲ بیتی مطابق با استاندارد IEEE 754 است. این نوع داده به‌ویژه برای صرفه‌جویی در حافظه در آرایه‌های بزرگ از اعداد اعشاری کاربرد دارد. مقدار پیش‌فرض آن 0.0f است. با این حال، مهم است بدانید که نوع داده‌ای float برای مقادیر دقیق مانند ارز مناسب نیست، زیرا ممکن است در محاسبات اعشاری خطای گرد کردن رخ دهد.

مثال

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
float f1 = 234.5f;
float f1 = 234.5f;
float f1 = 234.5f;

نوع داده‌ای double

نوع داده‌ای double یک نمایش عدد اعشاری با دقت دو برابر (double-precision) و به صورت ۶۴ بیتی مطابق با استاندارد IEEE 754 است. این نوع داده معمولاً به‌عنوان نوع پیش‌فرض برای مقادیر اعشاری استفاده می‌شود و به‌طور کلی انتخاب پیش‌فرض است. نوع داده‌ای double نباید هرگز برای مقادیر دقیق مانند ارز مورد استفاده قرار گیرد، زیرا دقت لازم را ندارد. مقدار پیش‌فرض آن 0.0d است.

مثال

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
double d1 = 123.4;
double d1 = 123.4;
double d1 = 123.4;

نوع داده‌ای boolean

نوع داده‌ای boolean نمایانگر یک بیت اطلاعات است و می‌تواند یکی از دو مقدار ممکن را نگه دارد: true (درست) یا false (نادرست). این نوع داده برای پرچم‌های ساده‌ای استفاده می‌شود که وضعیت‌های درست یا نادرست (true/false) را دنبال می‌کنند. مقدار پیش‌فرض آن false است.

مثال

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
boolean one = true;
boolean one = true;
boolean one = true;

نوع داده‌ای char

نوع داده‌ای char یک نویسه ۱۶ بیتی یونیکد (Unicode) است که قادر به نمایش دامنه وسیعی از نویسه‌ها از زبان‌ها و نمادهای مختلف می‌باشد. دامنه آن از ‘\u0000’ (یا 0) تا ‘\uffff’ (یا 65,535 شامل) است. این نوع داده عمدتاً برای ذخیره نویسه‌های منفرد استفاده می‌شود.

مثال

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
char letterA = 'A'
char letterA = 'A'
char letterA = 'A'

مثال‌هایی از انواع داده‌ای اولیه

مثال‌های زیر نحوه استفاده از انواع داده‌ای اولیه‌ای که در بالا مورد بحث قرار گرفتند را نشان می‌دهند. ما از عملگر جمع برای انواع داده‌ای عددی استفاده کرده‌ایم، در حالی‌که متغیرهای boolean و char به همان صورت چاپ شده‌اند.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class JavaTester {
public static void main(String args[]) {
byte byteValue1 = 2;
byte byteValue2 = 4;
byte byteResult = (byte)(byteValue1 + byteValue2);
System.out.println("Byte: " + byteResult);
short shortValue1 = 2;
short shortValue2 = 4;
short shortResult = (short)(shortValue1 + shortValue2);
System.out.println("Short: " + shortResult);
int intValue1 = 2;
int intValue2 = 4;
int intResult = intValue1 + intValue2;
System.out.println("Int: " + intResult);
long longValue1 = 2L;
long longValue2 = 4L;
long longResult = longValue1 + longValue2;
System.out.println("Long: " + longResult);
float floatValue1 = 2.0f;
float floatValue2 = 4.0f;
float floatResult = floatValue1 + floatValue2;
System.out.println("Float: " + floatResult);
double doubleValue1 = 2.0;
double doubleValue2 = 4.0;
double doubleResult = doubleValue1 + doubleValue2;
System.out.println("Double: " + doubleResult);
boolean booleanValue = true;
System.out.println("Boolean: " + booleanValue);
char charValue = 'A';
System.out.println("Char: " + charValue);
}
}
public class JavaTester { public static void main(String args[]) { byte byteValue1 = 2; byte byteValue2 = 4; byte byteResult = (byte)(byteValue1 + byteValue2); System.out.println("Byte: " + byteResult); short shortValue1 = 2; short shortValue2 = 4; short shortResult = (short)(shortValue1 + shortValue2); System.out.println("Short: " + shortResult); int intValue1 = 2; int intValue2 = 4; int intResult = intValue1 + intValue2; System.out.println("Int: " + intResult); long longValue1 = 2L; long longValue2 = 4L; long longResult = longValue1 + longValue2; System.out.println("Long: " + longResult); float floatValue1 = 2.0f; float floatValue2 = 4.0f; float floatResult = floatValue1 + floatValue2; System.out.println("Float: " + floatResult); double doubleValue1 = 2.0; double doubleValue2 = 4.0; double doubleResult = doubleValue1 + doubleValue2; System.out.println("Double: " + doubleResult); boolean booleanValue = true; System.out.println("Boolean: " + booleanValue); char charValue = 'A'; System.out.println("Char: " + charValue); } }
public class JavaTester {
   public static void main(String args[]) {

      byte byteValue1 = 2;
      byte byteValue2 = 4;
      byte byteResult = (byte)(byteValue1 + byteValue2);

      System.out.println("Byte: " + byteResult);

      short shortValue1 = 2;
      short shortValue2 = 4;
      short shortResult = (short)(shortValue1 + shortValue2);

      System.out.println("Short: " + shortResult);

      int intValue1 = 2;
      int intValue2 = 4;
      int intResult = intValue1 + intValue2;

      System.out.println("Int: " + intResult);

      long longValue1 = 2L;
      long longValue2 = 4L;
      long longResult = longValue1 + longValue2;

      System.out.println("Long: " + longResult);

      float floatValue1 = 2.0f;
      float floatValue2 = 4.0f;
      float floatResult = floatValue1 + floatValue2;

      System.out.println("Float: " + floatResult);

      double doubleValue1 = 2.0;
      double doubleValue2 = 4.0;
      double doubleResult = doubleValue1 + doubleValue2;

      System.out.println("Double: " + doubleResult);

      boolean booleanValue = true;

      System.out.println("Boolean: " + booleanValue);

      char charValue = 'A';

      System.out.println("Char: " + charValue);     
   }
}

خروجی

 Byte: 6 Short: 6 Int: 6 Long: 6 Float: 6.0 Double: 6.0 Boolean: true Char: A

انواع داده‌ای غیر اولیه (مرجع/شیء) در جاوا

انواع داده‌ای غیر اولیه در جاوا از پیش تعریف‌شده نیستند. این نوع داده‌ها با استفاده از سازنده‌های تعریف‌شده (constructors) در کلاس‌ها ساخته می‌شوند. آن‌ها برای دسترسی به اشیاء مورد استفاده قرار می‌گیرند. این متغیرها برای یک نوع مشخص تعریف می‌شوند و نوع آن‌ها قابل تغییر نیست. برای مثال: Employee، Puppy و غیره.

انواع داده‌ای غیر اولیه (مرجع/شیء) شامل موارد زیر هستند:

  • String: رشته (String) یک کلاس در جاوا است و دنباله‌ای از نویسه‌ها را نمایش می‌دهد.
  • آرایه‌ها (Arrays): آرایه‌ها با کمک انواع داده‌ای اولیه ساخته می‌شوند و چندین مقدار از یک نوع را ذخیره می‌کنند.
  • کلاس‌ها (Classes): کلاس‌ها نوع داده‌ای تعریف‌شده توسط کاربر هستند و شامل متغیرها و متدها می‌باشند.
  • رابط‌ها (Interfaces): رابط‌ها نوع‌های انتزاعی هستند که مجموعه‌ای از متدها را مشخص می‌کنند.

مقدار پیش‌فرض هر متغیر مرجع (reference variable)، مقدار null است. یک متغیر مرجع می‌تواند به هر شیء از نوع اعلام‌شده یا نوع‌های سازگار با آن اشاره کند.

مثال

مثال زیر استفاده از انواع داده‌ای مرجع (یا شیء) را نشان می‌دهد.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// Creating an object of 'Animal' class
Animal animal = new Animal("giraffe");
// Creating an object of 'String' class
String myString = new String("Hello, World!");
// Creating an object of 'Animal' class Animal animal = new Animal("giraffe"); // Creating an object of 'String' class String myString = new String("Hello, World!");
// Creating an object of 'Animal' class
Animal animal = new Animal("giraffe");

// Creating an object of 'String' class
String myString = new String("Hello, World!");
PHP از دستورات echo و print برای نمایش خروجی در مرورگر یا کنسول PHP استفاده می‌کند. هر دو ساختارهای زبان...
شناسه‌ها در ++C نام‌های منحصربه‌فردی هستند که برای شناسایی متغیرها، توابع، کلاس‌ها، آرایه‌ها و سایر آیتم‌های تعریف‌شده توسط کاربر در...
++C
کلمات کلیدی در C++ کلمات رزرو شده‌ای هستند که برای کامپایلر معنا و مفهوم خاصی دارند. این کلمات نمی‌توانند برای...
++C
ثابت‌ها به مقادیر ثابتی اشاره دارند که برنامه نباید آن‌ها را تغییر دهد و به آن‌ها لیترال (Literal) گفته می‌شود. ثابت‌ها می‌توانند...
C++ Programming Language
توکن‌های C++ کوچک‌ترین واحدهای مستقل در یک برنامه هستند که توسط کامپایلر شناسایی و پردازش می‌شوند. این توکن‌ها با هم...
C++ Programming Language
حذف فضای نام (Namespace) شما می‌توانید به‌صورت صریح از پیشوند std:: برای اشیاء و توابع کتابخانه استاندارد استفاده کنید، به‌جای اینکه از...
C++ Programming Language
1

پشتیبانی واتساپ هوش فعال