وثائق Java
مرجع موجز ومدعّم بأمثلة للغة Java. اقرأ المفهوم، شاهد الكود، ثم تدرّب عليه في رحلة Coddy.
ابدأ رحلة موجَّهة في Javaالبداية
- ما هي جافاما هي جافا فعليًا، وكيف تتيح آلة JVM لبرنامج واحد مُصرَّف أن يعمل في أي مكان، وأنواع البرمجيات التي تُبنى بجافا.
- تثبيت Javaكيفية تثبيت حزمة تطوير Java (JDK)، واختيار إصدار ومُورّد، والتأكد من أن java وjavac يعملان من سطر الأوامر.
- تشغيل Javaدورة التصريف ثم التشغيل المؤلفة من خطوتين خلف كل برنامج Java: حوّل مصدر .java إلى بايت كود باستخدام javac، ثم شغّل ملف .class باستخدام java.
- صياغة جافاشكل برنامج جافا - الدالة `main`، العبارات والفواصل المنقوطة، الكتل والأقواس المعقوفة، والقواعد التي يفرضها المُصرِّف قبل أن يعمل برنامجك أصلاً.
- التعليقاتكيفية كتابة التعليقات في Java: تعليقات السطر الواحد //، وكتل التعليقات متعددة الأسطر /* */، وتعليقات التوثيق Javadoc /** */، إضافةً إلى متى تستخدم كلًّا منها وما الذي ينبغي تجنّبه.
المتغيرات والأنواع
- المتغيراتكيف تعمل المتغيرات في جافا - الإعلان بنوع، وإسناد القيم، وقواعد التسمية، والكلمة المفتاحية var، والثوابت باستخدام final، وقواعد النطاق التي تحدد أين يعيش المتغير.
- أنواع البياناتشرح أنواع البيانات في جافا - الأنواع البدائية الثمانية، وأنواع المرجع، والقيم الافتراضية، والحرفيات واللواحق، والفيضان (overflow)، ومتى تستخدم أي نوع رقمي.
- السلاسل النصيةكيف تعمل السلاسل النصية في Java: إنشاؤها، ودمجها باستخدام +، ولماذا هي غير قابلة للتغيير (immutable)، ومقارنتها باستخدام equals، ودوال String اليومية مثل length وsubstring وreplace.
- تنسيق النصوصكيفية تنسيق النصوص في Java باستخدام String.format و printf - محددات التنسيق للأرقام والحشو والمنازل العشرية، إضافة إلى الكتل النصية وطريقة formatted.
- المعاملاتكيف تعمل معاملات جافا - الحسابية والمقارنة والمنطقية والإسناد والزيادة والمعامل الثلاثي - إضافة إلى القسمة الصحيحة والأسبقية والمزالق التي توقع المبتدئين.
- تحويل الأنواعكيف تحوّل Java بين الأنواع - التوسيع التلقائي، وتحويلات التضييق الصريحة، وما الذي تفقده من بيانات عند التضييق، والتحويل بين الأرقام والنصوص.
التحكم في التدفق
- if-elseكيفية اتخاذ القرارات في Java باستخدام if وelse if وelse: الشروط المنطقية، وربط الفروع، والتداخل، والمعامل الثلاثي، والأخطاء الشائعة التي تربك الكثيرين.
- switchشرح جملة switch في جافا: تسميات case، break والسقوط التتابعي، فرع default، تجميع الحالات، صيغة السهم الحديثة، وتعبيرات switch.
- حلقة forشرح حلقة for في جافا: الحلقة الكلاسيكية المكوّنة من ثلاثة أجزاء، والمرور على المصفوفات والقوائم، والحلقات المتداخلة، وbreak وcontinue، وحلقة for-each المُحسَّنة.
- حلقات whileشرح حلقة while في جافا - حلقة while التي تفحص الشرط أولًا، وحلقة do-while التي تعمل مرة واحدة على الأقل، والقراءة حتى قيمة فاصلة، وbreak وcontinue، وتجنّب الحلقات اللانهائية.
- حلقة for-eachشرح حلقة for-each في جافا (حلقة for المُحسّنة): تكرار نظيف على المصفوفات والمجموعات، ومتى تستخدمها، ومزلق التعديل الذي يقع فيه الجميع.
المصفوفات والمجموعات
- المصفوفاتكيف تعمل المصفوفات في جافا - الطول الثابت، الإعلان عنها وتهيئتها، الفهرسة، length، التكرار، المصفوفات متعددة الأبعاد، وفئة الأدوات Arrays.
- ArrayListكيفية استخدام ArrayList في جافا - القائمة المتغيرة الحجم التي تلجأ إليها بدلاً من المصفوفة العادية - مع شرح الإضافة والجلب والحذف والحجم والتكرار والفرز.
- HashMapكيفية استخدام HashMap في Java للبحث عبر المفتاح والقيمة: put وget وgetOrDefault وcontainsKey والمرور على العناصر والأنماط التي ستستخدمها كثيرًا.
- HashSetكيفية استخدام HashSet في Java لمجموعات القيم الفريدة - add وcontains وremove وإزالة التكرارات من قائمة ودمج المجموعات عبر الاتحاد والتقاطع والفرق.
- المرور على المجموعاتطرق المرور على مجموعات Java - حلقة for-each، وIterator، وحلقات الفهرسة، ودالة forEach - وكيفية حذف العناصر بأمان أثناء المرور.
الطرق
- الدوالما هي الدالة في جافا، وكيفية تعريفها واستدعائها، والفرق بين القيم المُعادة وvoid، ودالة main الساكنة، وكيف تُبقي الدوال الشيفرة منظمة وقابلة لإعادة الاستخدام.
- معاملات الدوالكيف تعمل معاملات الدوال في جافا - تمرير الوسائط، والفرق بين المعاملات والوسائط، وقاعدة التمرير بالقيمة في جافا، وإرجاع القيم.
- التحميل الزائد للدوالكيف يتيح التحميل الزائد للدوال في Java أن تتشارك عدة دوال الاسم نفسه بينما تأخذ معاملات مختلفة، وكيف يختار المُصرِّف النسخة المناسبة، وما مزالق الالتباس التي يجب تجنبها.
- الوسائط المتغيرةكيف تتيح الوسائط المتغيرة (...) في جافا لدالة أن تقبل أي عدد من الوسائط، وكيف تتحوّل إلى مصفوفة، وقاعدة وجود وسيط متغير واحد في النهاية، ومزالق الاستدعاء الفارغ والالتباس.
الفئات والكائنات
- الأصنافما هو الصنف في جافا، وكيفية تعريف الحقول والدوال، وإنشاء الكائنات باستخدام new، ودور this، ولماذا تُحفظ حالة النسخة في الكائن.
- المُنشئاتكيف تعمل المُنشئات في جافا: المُنشئ الافتراضي، والمُنشئات ذات المعاملات، وthis، وتحميل المُنشئات الزائد، والتسلسل باستخدام this() وsuper().
- الوراثةكيف ترث الفئة الفرعية في جافا الحقول والدوال باستخدام extends، وتستدعي الفئة الأب عبر super، وتعيد تعريف السلوك - إضافةً إلى الأخطاء الشائعة.
- الواجهاتما هي واجهة جافا، وكيفية تعريفها وتنفيذها، ومنهجيات default و static، وكيف تختلف الواجهات عن الأصناف المجردة.
- الفئات المجردةما هي الفئة المجردة في جافا، وكيفية تعريف الدوال المجردة، ولماذا لا يمكنك إنشاء كائن منها، ومتى تختار فئة مجردة بدلاً من واجهة.
- تعدد الأشكالكيف يتيح تعدد الأشكال في جافا لمتغيّر واحد أن يشير إلى أنواع كثيرة، ولماذا يُختار تنفيذ الدوال المُعاد تعريفها وقت التشغيل، وكيفية استخدام التحويل لأعلى والتحويل لأسفل وinstanceof بأمان.
- محددات الوصولكيف تتحكم مستويات الوصول الأربعة في جافا - public وprivate وprotected وpackage-private - فيما يمكن للشيفرة الأخرى رؤيته ولمسه.
- الأعضاء الساكنةما الذي تفعله الكلمة المفتاحية static في Java، وكيف تنتمي الحقول والطرق static إلى الصنف بدلاً من الكائنات، ومتى تلجأ إلى كتل static والثوابت.
- التعداداتما هو التعداد enum في جافا، وكيف تُعرّفه، وتضيف إليه حقولاً ودوالّ، وتستخدمه في switch، ولماذا يتفوّق التعداد على كومة من ثوابت int أو String.
الأنواع العامة والبرمجة الوظيفية
- الأنواع العامةما هي الأنواع العامة (Generics) في جافا، وكيفية كتابة أصناف وطرق عامة، والمعاملات النوعية المقيَّدة، والأحرف البدلية، ولماذا يهمّ محو النوع.
- تعابير لامداما هو تعبير لامدا في جافا، وصياغة السهم، وكيف ينفّذ واجهة وظيفية، ومراجع الدوال، والتقاط المتغيرات.
- التدفقاتكيفية معالجة المجموعات باستخدام Stream API في Java - filter وmap وsorted وcollect وcount وreduce - ببناء سلاسل معالجة (pipelines) سهلة القراءة بدلاً من الحلقات اليدوية.
- Optionalما هو java.util.Optional، وكيف تنشئ واحدًا، وكيف تقرأ قيمته بأمان باستخدام map وfilter وorElse وifPresent بدلًا من فحوصات null.
الأخطاء وتصحيحها
- الاستثناءاتما هو الاستثناء في جافا، وكيف تقرأ تتبّع المكدّس، والفرق بين الاستثناءات المُتحقَّق منها وغير المُتحقَّق منها، وهرمية الاستثناءات، وكيف ترمي استثناءاتك الخاصة.
- try-catchكيفية استخدام try-catch في جافا لمعالجة الاستثناءات - التقاط أنواع محددة، وكتلة finally، وtry-with-resources، والأخطاء التي تُخفي العلل.
- NullPointerExceptionما الذي يعنيه فعلاً استثناء NullPointerException في جافا، والطرق الشائعة لإطلاقه، وكيفية قراءة الرسالة، والأنماط التي تمنع حدوثه.