يتم تعريف نوع البيانات من خلال ثلاثة مكونات:
تحتوي لغة البرمجة على بعض الأنواع المضمنة مسبقًا وتسمح للمبرمجين بتعريف أنواعهم الخاصة والمعروفة.
في Java ، يتم تقسيم أنواع البيانات إلى أنواع مرجعية وبدائية.
"بدائي" يعني أنه أبعد من ذلكالتقسيم مستحيل. توسيع أو تغيير لغة البرمجة لا يسمح. يتم وصف هذا النوع من البيانات بواسطة الأنواع الأولية والمعرّفة من قِبل المستخدم.
يحتوي متغير من النوع الأساسي على قيمة ، ويحتوي متغير مرجع على عنوان الكائن في الذاكرة.
تنقسم البيانات المركبة إلى فئات وواجهات ومصفوفات. أعضاء نوع الواجهة هي أساليب مجردة وثوابت. في Java ، يتم تحديد أنواع بيانات التاريخ والوقت بواسطة مُنشئ التاريخ ():
مثال على الارتباط هو أيضا سلسلة.
السلسلة عبارة عن فئة محددة في مكتبة Java ، ويمكن استخدامها للعمل مع النص (تسلسل حروف).
يكون تعريف متغير سلسلة المرجع كما يلي: String str.
قبل تعيين مرجع كائن مثل متغير، يجب عليك إنشاء باستخدام المشغل الجديد. على سبيل المثال، قد تقوم بإنشاء كائن سلسلة مع النص "مرحبا":
ماذا يحدث عند تنفيذ هذا الرمز؟أولاً ، يتم تخصيص الذاكرة ، ويرتبط اسم str بخلية الذاكرة هذه. هذا لا يختلف عن التصريح بمتغير بدائي. ينشئ جزء التعليمات البرمجية الثاني كائن سلسلة بنص "Hi" في الذاكرة ويقوم بتخزين مرجع إليه (أو عنوان الذاكرة) في str.
أنواع البيانات المرجعية من جافا تسمح أيضاتعيين مرجع إلى كائن مخزن في متغير واحد ، وآخر. كلاهما يشير إلى نفس الكائن في الذاكرة. يمكن تحقيق ذلك على النحو التالي:
يوجد مرجع فارغ دائم ، والذي يمكن تخصيصه لأي متغير مرجع. لا يشير إلى أي كائن.
يتم إنشاء كائن السلسلة باستخدام المشغل الجديد.ولكن نظرًا لأن السلاسل تُستخدم كثيرًا ، فهناك طريقة أسهل لإنشائها. يتم التعامل مع جميع القيم الحرفية للسلسلة ، أي سلسلة من الأحرف الموضحة في علامات اقتباس مزدوجة ، ككائنات سلسلة. لذلك ، بدلاً من المشغل الجديد ، يمكنك استخدام القيم الحرفية للسلسلة:
أنواع البيانات البدائية Java - بايت و short و int وطويلة ، شار ، تعويم ، مزدوجة ، منطقية. تقع في فئتين: منطقية وعددية. يمكن تقسيم هذا الأخير إلى أرقام صحيحة وأرقام عائمة.
أنواع بيانات Java بالكامل هي أنواع رقمية تكون قيمها أعداد صحيحة. هناك خمسة منهم: البايت ، قصيرة ، كثافة العمليات ، طويلة وشار.
Int هو نوع بيانات بدائي 32 بت موقعة. يأخذ المتغير 32 بت من الذاكرة. النطاق المسموح به من -2147483648 إلى 2147483647 (-231 ما يصل إلى 231 - 1). كل الأعداد الصحيحة في هذا النطاق هي حرفية أو ثوابت صحيحة. على سبيل المثال ، 10 ، -200 ، 0 ، 30 ، 19 حرفان int. يمكن تعيينها إلى int:
يمكن التعبير عن القيم الحرفية الكاملة على شكل ثنائي ، ثماني ، وعشري ، وستعشري.
عندما يبدأ حرف حرفي بصفر ولديه رقمين على الأقل ، يتم اعتباره مكتوبًا بتنسيق ثماني. تمثل 0 و 00 القيمة نفسها - صفر.
جميع القيم الحرفية int بالتنسيق الست عشري تبدأ بـ 0x أو 0x ، ويجب أن تحتوي على رقم سداسي عشري واحد على الأقل:
تبدأ Int-literals في تنسيق ثنائي 0b أو 0B:
هذا هو نوع 64 بت مبدئي. تُستخدم عندما تتجاوز نتيجة الحساب نطاق int. مجموعة طويلة - من -263 ما يصل إلى 263- 1. جميع الأعداد الصحيحة في هذا النطاق هي حرفية طويلة.
للتمييز بين int وبيانات طويلة في Java ، ينتهي الحرف الحرفي للنوع الأخير دائمًا بـ L أو l.
يمكن التعبير الحرفي طويل المدى أيضًا بالتنسيقات الثمانية والسداسي عشري والصيغة الثنائية.
عندما يتم تعيين حرفية طويلة لطول متغير ،يتحقق برنامج التحويل البرمجي لـ Java من القيمة التي تم تعيينها ويتحقق من وجودها في نطاق مقبول. خلاف ذلك ، يحدث خطأ ترجمة.
نظرًا لأن نطاق int هو أقل من المدى الطويل ،يمكن دائمًا تعيين قيمة متغير int لمتغير من النوع الطويل. لكن التعيين العكسي غير ممكن حتى داخل نطاق int. لهذا ، يتم استخدام إشارة صريحة:
البايت هو نوع بدائي صحيح 8 بت. نطاقها من -128 إلى 127 (-27 ما يصل إلى 27 - 1). هذا هو أصغر نوع صحيح متاح في Java.عادة ، يتم استخدام متغيرات البايت عندما يستخدم البرنامج العديد من القيم في النطاق من -128 إلى 127 ، أو عند العمل مع البيانات الثنائية. على عكس القيم الحرفية الطويلة والحرفية ، لا توجد أي معادن حرفية. ومع ذلك ، يمكنك تعيين أي int-literal إلى متغير بايت لأنه يتجاوز نطاق البايت.
إذا كانت قيمة المتغير خارج النطاق ، فسوف ينتج Java خطأ في المحول البرمجي.
بالإضافة إلى ذلك ، يمكنك تعيين قيمة int-literal فقط ، لكن ليس قيمة مخزنة في المتغير int ، نظرًا لأنها قد تفقد الدقة. هذا يتطلب صب واضح.
وهو نوع بيانات أولية كاملة موقعة 16 بت. نطاقها من -32768 إلى 32767 (أو -215 ما يصل إلى 215 - 1).
كقاعدة عامة ، فإن الحاجة إلى متغيرات قصيرةيحدث عندما يستخدم البرنامج عددًا كبيرًا من القيم التي لا تتجاوز النطاق المحدد. حرف حرفي مفقود ، ولكن من الممكن تعيين أي معطيات حرفية داخل النطاق القصير. يمكن دائمًا تعيين قيمة متغير بايت. القواعد المتبقية لتعيين int أو طويلة short-variable هي نفسها كما في البايت.
Char هو غير موقعة 16 بتنوع بيانات بدائي يمثل حرف Unicode. غياب علامة يعني أن المتغير لا يمكن أن يكون له قيمة سالبة. النطاق من 0 إلى 65535 ، وهو نفس مجموعة أحرف Unicode. تمثل الحرفية قيمة char ويمكن التعبير عنها في مثل هذه الأشكال:
يمكن التعبير عن الرمز بإبرامهواحد اقتباس: char C1 = "A". تشير علامات الاقتباس المزدوجة إلى سلسلة حرفية لا يمكن تعيينها لمتغير char ، حتى إذا كانت السلسلة تتكون من حرف واحد فقط. هذا أمر غير مقبول ، لأن الإشارة إلى متغير بدائي لم يتم تعيينها. جميع القيم الحرفية للسلسلة هي كائنات من الفئة String ، وبالتالي ، المراجع ، في حين تشير القيم الحرفية للشخصية إلى النوع البدائي.
حرفية أعرب تحكم تسلسل، يتم تسجيل كرمز مائل في علامات الاقتباس المفردة. ما مجموعه 8: 'ن'، 'ص'، 'و'، 'ب'، 'ر'، '\'، ' "'، '' '.
تسلسل التحكم unicode يحتوي على النموذج"uxxxx" ، حيث يشير u (الخط المائل العكسي متبوعاً بالحرف الصغير u) إلى البداية ، ويمثل xxxx أربعة أرقام سداسية عشرية من رمز الحرف في نظام Unicode. على سبيل المثال ، يحتوي "A" على قيمة 65 في النظام العشري و 41 بالنظام الست عشري. وبالتالي ، يمكن تمثيل هذا الرمز باسم "u0041".
تتم كتابة تسلسل التحكم الثماني باسم "nnn" ، حيث n هو رقم ثماني (0-7). نطاق القيم من "8 يتوافق مع 25510. لذلك ، يتم استخدامه لتمثيلأحرف مع رمز من 0 إلى 255 ، وهو ضروري للتوافق مع لغات البرمجة الأخرى. بخلاف تسلسل Unicode حيث تكون الأرقام الستة عشرية مطلوبة ، يمكنك استخدام 1 أو 2 أو 3 أرقام ثمانية: "n" أو "nn" أو "nnn".
يحتوي Boolean على قيمتين صالحتين فقط:صحيح وكاذب. ما يطلق عليه boolean حرفية. لا يمكن تحويل المتغير المنطقي إلى نوع آخر والعكس صحيح. جافا لا تحدد حجم منطقي - يعتمد ذلك على التنفيذ المحدد لجهاز Java الظاهري.
الرقم الذي يحتوي على الجزء الكسري في الذاكرةيمكن تخزين الكمبيوتر في طريقة عرض مع عدد محدد من الأرقام قبل وبعد النقطة أو الإشارة إلى موضعها. وبما أن عدد الأرقام يمكن أن يختلف ، يقال أن النقطة "تطفو".
في لغة Java ، تستخدم أنواع البيانات العائمة 32 بت. وفقًا لمعيار IEEE 754 ، يتوافق هذا مع دقة واحدة ، والتي تسمح ، على سبيل المثال ، بتمثيل الأرقام 1.4 × 10-45 و 3.4 × 1038، سواء كانت إيجابية أو سلبية.
جميع الأرقام الحقيقية التي تنتهي في f أو F تسمى float-literals. يمكن تقديمها بتنسيق الأرقام العشري وعلى شكل تدوين علمي. على سبيل المثال:
يحدد النوع صفرين: + 0.0F (أو 0.0F) و -0.0 F.ومع ذلك ، لأغراض المقارنة ، يتم اعتبار كل من الأصفار متساوية. بالإضافة إلى ذلك ، حدد نوعين من اللانهاية: إيجابي وسالب. لا يتم تعريف نتائج بعض العمليات (على سبيل المثال ، تقسيم 0.0F إلى 0.0F) ويتم تمثيلها بقيمة خاصة من NaN.
لتخزين أرقام النقطة العائمة ، يستخدم مزدوج 64 بت. يمكن أن يمثل رقم الدقة المزدوجة القيم الإيجابية والسلبية 4.9 × 10-324 و 1.7 × 10308.
كل الأرقام الحقيقية الافتراضية هيالحرفيين مزدوجة. بشكل اختياري ، يمكن الإشارة إليها صراحةً باللاحقة d أو D ، على سبيل المثال ، 19.27d. يمكن التعبير عن حرفيتين مزدوجتين في الشكل العشري وفي التدوين العلمي.