logo

مقدمة إلى جافا

Java هي لغة برمجة كائنية التوجه وقائمة على الفصل. تم تصميم اللغة بحيث تحتوي على أقل عدد ممكن من تطبيقات التبعيات. الهدف من استخدام هذه اللغة هو توفير الراحة للمطورين من كتابة الأكواد لكل منصة. غالبًا ما يرتبط مصطلح WORA (الكتابة مرة واحدة والتشغيل في كل مكان) بهذه اللغة. هذا يعني أنه عندما نقوم بتجميع كود Java، نحصل على كود البايت (ملف .class)، ويمكن تنفيذ ذلك (دون تجميعه مرة أخرى) على منصات مختلفة بشرط أن تدعم Java. وفي عام 1995، تم تطوير لغة جافا. يتم استخدامه بشكل أساسي لتطوير الويب وسطح المكتب والأجهزة المحمولة. تشتهر لغة جافا بمتانتها وأمانها وبساطتها. تم تصميم ذلك بحيث يحتوي على أقل عدد ممكن من تبعيات التنفيذ.

تاريخ

تتمتع لغة Java بتاريخ مثير للاهتمام. بدأ باتريك نوتون، ومايك شيريدان، وجامي جوسلينج، المعروفون بالفريق الأخضر، تطوير Java في عام 1991. وكان هؤلاء الأشخاص هم المهندسون في صن مايكروسيستمز . في عام 1996، تم إصدار أول تطبيق عام باسم Java 1.0. تمت إعادة كتابة مترجم Java 1.0 بواسطة آرثر فان هوف ليتوافق بدقة مع مواصفاته. مع تقديم Java 2، تحتوي الإصدارات الجديدة على العديد من التكوينات المختلفة التي تم إنشاؤها لمختلف الأنظمة الأساسية. ومن الجدير بالذكر أن جيمس جوسلينج معروف أيضًا باسم والد جافا.

اتصلت شركة Sun Microsystems بهيئة معايير ISO في عام 1997 لإضفاء الطابع الرسمي على Java، ولكن تم سحب العملية قريبًا. في وقت ما، قدمت شركة Sun Microsystems معظم تطبيقاتها لجافا متاحة دون أي تكلفة، على الرغم من كونها برمجيات احتكارية.

برامج التطبيقات

يتضمن تنفيذ برنامج تطبيقي في تطبيق Java الخطوات التالية.

  1. إنشاء البرنامج (كتابة الكود)
  2. تجميع البرنامج.
  3. تنفيذ التعليمات البرمجية المترجمة.

ومن الجدير بالذكر هنا أنه يجب تثبيت JDK (Java Development Kit) بشكل صحيح على النظام، ويجب أيضًا تعيين المسار.

إنشاء البرنامج

يمكن كتابة برنامج Java باستخدام محرر النصوص (سيقوم Notepad++ أو NotePad أو أي محرر آخر بهذه المهمة أيضًا.) أو IDE (Eclipse أو NetBeans وما إلى ذلك).

اسم الملف: TestClass.java

 public class TestClass { // main method public static void main(String []args) { // print statement System.out.println('Hello World is my first Java Program.'); } } 

اكتب الكود أعلاه واحفظ الملف بالاسم TestClass. يجب أن يحتوي الملف على .جافا امتداد.

تجميع البرنامج

افتح موجه الأوامر، واكتب جافا TestClass.java . javac هو الأمر الذي يجعل مترجم Java يبادر إلى ترجمة برنامج Java. بعد الأمر يجب أن نضع اسم الملف الذي يجب تجميعه. في حالتنا، هو عليه TestClass.java . بعد الكتابة، اضغط على زر الإدخال. إذا سارت الأمور على ما يرام، فسيتم إنشاء ملف TestClass.class الذي يحتوي على رمز البايت. إذا كان هناك خطأ ما في البرنامج، فإن المترجم سوف يشير إليه، و TestClass.class لن يتم إنشاؤها.

تشغيل / تنفيذ البرنامج

بعد إنشاء ملف .class، اكتب فئة اختبار جافا لتشغيل البرنامج. سيتم عرض مخرجات البرنامج على وحدة التحكم المذكورة أدناه.

انتاج:

 Hello World is my first Java Program. 

الاسم جافا

في البداية، تم إعطاء اسم البلوط للغة. ومع ذلك، قرر الفريق أنه يجب إعطاء اسم جديد للغة، وتم اقتراح كلمات مثل DNA، وrevolutionary، وJolt، وDynamic، وSilk، وما إلى ذلك. كل هذه الأسماء كانت ممتعة في القول وسهلة التوضيح. لكن ما كان يفتقده هو جوهر اللغة في الأسماء المقترحة، والتي أراد الفريق أن تكون موجودة. وفقًا لجيمس جوسلينج، كانت Java وSilk من أكثر الخيارات شيوعًا، وبما أن Java كان لها اسم فريد، فقد فضلها معظم الناس.

جافا هو أيضًا اسم جزيرة في إندونيسيا حيث يتم إنتاج القهوة (المسماة جافا كوفي). تم اختيار اسم جافا بواسطة جيمس جوسلينج لأنه كان يتناول القهوة بالقرب من مكتبه. يجب على القراء ملاحظة أن Java ليس اختصارًا. إنه مجرد اسم.

المصطلحات في جافا

JVM (جهاز جافا الظاهري): JVM هي المواصفات التي تسهل بيئة التشغيل التي يتم فيها تنفيذ Java bytecode. كلما استخدم الأمر جافا, يتم إنشاء مثيل JVM . يسهل JVM تعريف منطقة الذاكرة ومجموعة التسجيل وتنسيق ملف الفئة والإبلاغ عن الأخطاء الفادحة. لاحظ أن JVM يعتمد على النظام الأساسي.

رمز البايت: لقد تمت مناقشة ذلك بالفعل في الجزء التمهيدي حول قيام مترجم Java بتجميع كود Java لإنشاء ملف .class أو رمز البايت. على المرء أن يستخدم javac أمر لاستدعاء مترجم جافا.

مجموعة تطوير جافا (JDK): إنها مجموعة تطوير Java الكاملة التي تشمل كل شيء، بما في ذلك JRE (بيئة تشغيل Java)، والمترجم، ومستندات Java، ومصححات الأخطاء، وما إلى ذلك. يجب تثبيت JDK على الكمبيوتر لإنشاء برنامج Java وتجميعه وتنفيذه.

بيئة تشغيل جافا (JRE): JRE جزء من JDK. إذا كان النظام مثبتًا عليه JRE فقط، فيمكن للمستخدم تشغيل البرنامج فقط. وبعبارة أخرى، فقط java يعمل الأمر. لن يكون تجميع برنامج Java ممكنًا (ملف javac الأمر لن يعمل).

جامع القمامة: لا يستطيع المبرمجون حذف الكائنات في Java. من أجل القيام بذلك، لدى JVM برنامج يعرف باسم Garbage Collector. يقوم جامعو البيانات المهملة بتجميع أو حذف الكائنات غير المرجعية. يجعل Garbage Collector حياة المطور/المبرمج سهلة حيث لا داعي للقلق بشأن إدارة الذاكرة.

مسار الفصل: كما يوحي الاسم، فإن classpath هو المسار الذي يبحث فيه مترجم Java ووقت تشغيل Java عن ملف .class لتحميله. يتم توفير العديد من المكتبات المدمجة بواسطة JDK. ومع ذلك، إذا أراد شخص ما استخدام المكتبات الخارجية، فيجب إضافتها إلى مسار الفصل.

السمات البارزة لجافا

منصة مستقلة: بدلاً من إنشاء ملف .exe مباشرةً، يقوم مترجم Java بتحويل كود Java إلى كود بايت، ويمكن تنفيذ كود البايت هذا على منصات مختلفة دون أي مشكلة، مما يجعل Java لغة مستقلة عن النظام الأساسي. لاحظ أنه من أجل تنفيذ كود البايت، يجب تثبيت JVM على النظام، الذي يعتمد على النظام الأساسي.

لغة البرمجة الشيئية: يعتمد مفهوم البرمجة كائنية التوجه على مفهوم الكائنات والفئات. أيضًا، هناك العديد من الصفات الموجودة في البرمجة الشيئية. عدد قليل منهم مذكور أدناه.

  • التجريد
  • ميراث
  • تعدد الأشكال
  • التغليف

تستخدم لغة Java أيضًا على نطاق واسع مفاهيم الفئات والكائنات. كما أن كل هذه الميزات المذكورة أعلاه موجودة في Java، مما يجعل Java لغة برمجة موجهة للكائنات. لاحظ أن Java هي لغة برمجة موجهة للكائنات ولكنها ليست موجهة للكائنات بنسبة 100%.

بسيط: تعتبر Java لغة بسيطة لأنها لا تحتوي على مفهوم المؤشرات أو الوراثة المتعددة أو التخصيص الصريح للذاكرة أو التحميل الزائد للمشغل.

قوي:

لغة جافا قوية جدًا. ومعنى قوي موثوق. تم تطوير لغة Java بحيث يتم إجراء الكثير من عمليات التحقق من الأخطاء في أقرب وقت ممكن. ولهذا السبب تستطيع هذه اللغة التعرف على تلك الأخطاء التي يصعب تحديدها في لغات البرمجة الأخرى. تعد معالجة الاستثناءات ومجموعات البيانات المهملة وتخصيص الذاكرة من الميزات التي تجعل Java قوية.

يؤمن: هناك العديد من الأخطاء مثل تجاوز سعة المخزن المؤقت أو تلف المكدس التي لا يمكن استغلالها في لغة Java. نحن نعلم أن لغة Java لا تحتوي على مؤشرات. ولذلك، ليس من الممكن الوصول إلى صفائف خارج منضم. إذا حاول شخص ما القيام بذلك، فسيتم رفع استثناء ArrayIndexOutofBound. كما أن تنفيذ برامج Java يتم في بيئة مستقلة تمامًا عن نظام التشغيل، مما يجعل هذه اللغة أكثر أمانًا.

وزعت: يمكن إنشاء التطبيقات الموزعة بمساعدة لغة جافا. يتم استخدام وحدات Java Enterprise وRemote Method Invocation لإنشاء التطبيقات الموزعة. يمكن أن يتم توزيع برامج Java بسهولة بين نظام واحد أو أكثر متصلين ببعضهم البعض باستخدام الإنترنت.

تعدد مؤشرات الترابط: تدعم لغة Java تعدد مؤشرات الترابط. تدعم ميزة تعدد العمليات تنفيذ جزأين أو أكثر من البرنامج في وقت واحد. وبالتالي، يتم تعظيم الاستفادة من وحدة المعالجة المركزية.

قابلية التنقل: نحن نعلم أن Java هي لغة مستقلة عن النظام الأساسي. وبالتالي، يمكن أخذ كود البايت الذي تم إنشاؤه على نظام ما على أي نظام أساسي آخر للتنفيذ، مما يجعل Java محمولة.

أداء عالي المستوى: تم إنشاء بنية Java بطريقة تقلل من تكاليف وقت التشغيل. في بعض الأماكن، تستخدم Java مترجم JIT (Just In Time) عندما يتم تجميع التعليمات البرمجية على أساس الطلب، حيث يقوم المترجم فقط بتجميع تلك الأساليب التي تم استدعاؤها وبالتالي تنفيذ التطبيقات بشكل أسرع.

المرونة الديناميكية: تتبع لغة Java نموذج البرمجة كائنية التوجه، والذي يمنحنا الحرية لإضافة أساليب وفئات جديدة إلى الفئات الموجودة. تدعم لغة Java أيضًا الوظائف المذكورة في لغات C/C++ والتي يشار إليها عمومًا بالطرق الأصلية.

تنفيذ وضع الحماية: من المعروف أن برامج Java يتم تنفيذها في بيئات مختلفة، مما يمنح المستخدمين الحرية في تنفيذ تطبيقاتهم الخاصة دون التأثير على النظام الأساسي باستخدام أداة التحقق من الرمز الثانوي. يوفر برنامج التحقق من Bytecode أيضًا أمانًا إضافيًا لأنه يتحقق من الكود بحثًا عن انتهاك الوصول.

اكتب مرة واحدة، قم بالتشغيل في أي مكان: يتم تجميع كود Java بواسطة المترجم للحصول على ملف .class أو رمز البايت، وهو مستقل تمامًا عن أي بنية جهاز.

اللغة المجمعة والمفسرة: معظم اللغات إما لغة مترجمة أو لغة مجمعة. ومع ذلك، في حالة لغة Java، يتم تجميعها بالإضافة إلى اللغة المترجمة. يتم تجميع كود Java للحصول على الكود الثانوي، ويتم تفسير الكود الثانوي بواسطة مترجم قائم على البرنامج.

بعض البرامج على جافا

تم ذكر بعض برامج Java الأساسية أدناه.

البرنامج - 1

اسم الملف: DemoClass.java

 // Importing different classes import java.io.*; // Main class public class DemoClass { // main method public static void main(String argvs[]) { System.out.println('Welcome to javaTpoint.'); } } 

انتاج:

 Welcome to javaTpoint. 

البرنامج - 2

اسم الملف: AddMul.java

 // Computing the sum and product of the two numbers public class AddMul { // main method public static void main(String argvs[]) { int a1; int a2; int add = 0; int prod = 0; a1 = 12; a2 = 14; add = a1 + a2; // addition prod = a1 * a2; // multiplication System.out.println('Sum = ' + add); System.out.println('Product = ' + prod); } } 

انتاج:

 Sum = 26 Product = 168 

البرنامج - 3

numpy linspace

اسم الملف: ComputeAv.java

 // A Java program to allow the user to input two numbers from the user and compute its average. import java.util.*; public class ComputeAv { // main method public static void main(String argvs[]) { double a1; double b1; double sum1 = 0; double avg1 = 0; Scanner scnr = new Scanner(System.in); System.out.println('Input the First Number: '); a1 = scnr.nextDouble(); System.out.println('Input the Second Number: '); b1 = scnr.nextDouble(); sum1 = a1 + b1; // computing the sum avg1 = sum1 / 2; // computing the average System.out.println('Average = ' + avg1); } } 

انتاج:

 Input the First Number: 4 Input the Second Number: 5 Average = 4.5 

البرنامج - 4

اسم الملف: فهرنهايت مئوية.java

 // A Java program that converts Celsius to Fahrenheit using formula // Fahrenheit = ((Celsius / 5) x 9 ) + 32 // import statement for taking input import java.util.Scanner; public class FahrenheitCelsius { // main method public static void main(String argvs[]) { double cel, far; Scanner scnr = new Scanner(System.in); System.out.println('Input the temperature in Celsius: '); cel = scnr.nextDouble(); far = ((cel / 5.0) * 9.0) + 32; System.out.println('Temperature in Fahrenheit is: ' + far); } } 

انتاج:

 Input the temperature in Celsius: 15 Temperature in Fahrenheit is: 59.0 

البرنامج - 5

اسم الملف: TriangleArea.java

 // A Java program for computing the triangle's area using its three sides // using heron's formula. import java.util.Scanner; public class TriangleArea { // main method public static void main(String[] argvs) { int s1, s2, s3; double halfPeri, ar; Scanner scnr = new Scanner(System.in); System.out.print('Enter the value of triangle's three sides:'); // taking user inputs s1 = scnr.nextInt(); s2 = scnr.nextInt(); s3 = scnr.nextInt(); // computing half perimeter halfPeri = (s1 + s2 + s3) / 2; // computing area of the triangle ar = Math.sqrt(halfPeri * (halfPeri - s1) * (halfPeri - s2) * (halfPeri - s3)); System.err.println('Triangles Area: ' + ar); } } 

انتاج:

 Enter the value of triangle's three sides: 15 16 17 Triangles Area: 109.98181667894016 

وصف الكلمات الرئيسية المختلفة المستخدمة في البرامج المذكورة أعلاه

//: يتم استخدامه لوضع التعليقات في الكود لجعله أكثر قابلية للقراءة للقراء. يتجاهل المترجم التعليقات تمامًا أثناء تجميع البرنامج. للتعليق متعدد الأسطر نستخدم: /* … */

الطريقة الرئيسية (): أهم طريقة للبرنامج حيث يبدأ التنفيذ. لذلك، كل المنطق يجب أن يتواجد في الطريقة الرئيسية. إذا كانت الطريقة main() لا تحتوي على المنطق، فستكون موجودة في طريقة أخرى، ولكن يجب استدعاء هذه الطريقة من الطريقة main() بشكل مباشر أو غير مباشر.

فصل: يتم استخدام فئة الكلمة الأساسية للإعلان عن الفصل في لغة Java.

فارغ: فهذا يعني أن الوظيفة أو الطريقة لن تقوم بإرجاع أي شيء.

System.out.println (): يتم استخدامه لطباعة البيانات والأنماط وما إلى ذلك على وحدة التحكم.

سلسلة argvs[]: إنها وسيطة سطر الأوامر المستخدمة لأخذ المدخلات.

عام: إنها كلمة أساسية محددة للوصول. عندما يتم تطبيقه على طريقة ما، فإن هذه الطريقة تكون مرئية للجميع. الكلمات الأساسية الأخرى لمحدد الوصول هي خاصة ومحمية وافتراضية.

استيراد java.io.*: وهذا يعني أن جميع الفئات الموجودة في الحزمة java.io يتم استيراده. تعمل حزمة java.io على تسهيل تدفقات الإخراج والإدخال لكتابة البيانات وقراءتها في الملفات. * يعني الكل. إذا أراد أحد استيراد فئة معينة فقط، فاستبدل * باسم الفئة.

النظام.في: إنه تدفق الإدخال الذي يتم استخدامه لقراءة الأحرف من جهاز إدخال الإدخال، والذي عادة ما يكون لوحة مفاتيح في حالتنا.

الفراغ الثابت الرئيسي (): تخبر الكلمة الأساسية الثابتة أنه يمكن الوصول إلى الطريقة دون إنشاء مثيل للفئة.

نظام الخروج: كما يتم استخدام System.in لقراءة الأحرف، يتم استخدام System.out لإعطاء نتيجة البرنامج على جهاز الإخراج مثل شاشة الكمبيوتر.

مزدوج، كثافة العمليات: أنواع البيانات المختلفة، int للأعداد الصحيحة، double for double. أنواع البيانات الأخرى هي char وboolean وfloat وما إلى ذلك.

برينتلن (): تُظهر الطريقة النصوص الموجودة على وحدة التحكم. تقوم الطريقة بطباعة النص على الشاشة ثم تنتقل إلى السطر التالي. للسطر التالي، يتم استخدام ln. إذا كنا لا نريد أن ينتقل المؤشر إلى السطر التالي، استخدم طريقة الطباعة ().