تبدأ رحلتنا في استكشاف موقع مجاني شامل يضم كنوز وهي : دورات مجانية ومنح دراسية ووظائف وتدريب ومقالات مفيدة ودليل كامل لكل مجال خاص بالتكنولوجيا حصريا وبعض من المجالات الاخري لمتابعة كل جديد علي التليجرام والفيسبوك | Telegram | Facebook

[NEW] Oracle Certified Professional Java SE 11 Developer

دورة متاحة لفترة محدودة
free-palestine free-palestine

Responsive image
منذ ساعتين

أهلا بك عزيزي المتابع لموقع (journey for learn) نقدم دورات بكوبونات متاحة لاول 1000 تسجيل مجاني فقط وكوبونات اخري لفترة محدودة فاذا كنت تريد ان تحصل علي كل الكورسات علي موقعنا وان تكون اول المسجلين في الكورسات المجانية قم بتسجيل الدخول أوقم بالدخول علي وسائل التواصل الاجتماعي وخصوصا التليجرام نوضح الوصف المختصر والطويل للدورات لكي تعرف الدروس التي سوف تتعلمها بسهولة ويسر :

تغطية تفصيلية لنطاق الاختبار
  • ميزات لغة Java الأساسية (25%)
    • المواضيع: أنواع البيانات البدائية، والقيم الحرفية، وعوامل التشغيل؛ بيانات تدفق التحكم ومعالجة الاستثناءات؛ الفئات والواجهات والتعدادات والسجلات؛ تحسينات لغة Java SE 11 وميزات المعاينة.
  • البرمجة والتصميم كائني التوجه (25%)
    • المواضيع: التغليف، والميراث، وتعدد الأشكال؛ مبادئ التصميم (SOLID) وأنماط التصميم الشائعة؛ معدّلات الوصول، والطبقات الداخلية، والتداخل؛ التكوين مقابل قرارات الميراث.
  • البرمجة الوظيفية والتدفقات (25%)
    • المواضيع: تعبيرات Lambda ومراجع الأساليب؛ الواجهات الوظيفية والأساليب الافتراضية؛ عمليات تدفق خطوط الأنابيب (التصفية، الخريطة، التقليل، التجميع)؛ واجهة برمجة التطبيقات الاختيارية والتعامل مع القيم الخالية.
  • التزامن وعناصر JVM الداخلية والأداء (25%)
    • المواضيع: دورة حياة سلسلة الرسائل، والقابلة للتشغيل، والقابلة للاستدعاء، والمنفذين؛ المزامنة والأقفال والمجموعات المتزامنة؛ خوارزميات جمع البيانات المهملة وضبطها؛ تحميل الفئة ونظام الوحدات وخيارات JVM.
يعد الحصول على بيانات اعتماد مطور Oracle Certified Professional (OCP) Java SE 11 أحد أكثر الطرق تحديدًا لإثبات خبرتك الهندسية في الواجهة الخلفية. ومع ذلك، يتطلب اجتياز هذا الاختبار أكثر من مجرد فهم عام لتركيب الجملة. يشتهر الاختبار الفعلي باختبار حالات الحافة الغامضة، وسلوك المترجم غير المتوقع، وتفاصيل واجهة برمجة التطبيقات المعقدة التي نادرًا ما يفكر فيها المطورون أثناء البرمجة اليومية. لقد صممت بنك أسئلة الاختبار التدريبي هذا لسد الفجوة بين معرفة Java واجتياز اختبار OCP. بدلاً من إعطائك تعريفات بسيطة، تعكس هذه الأسئلة مدى تعقيد بيئة الاختبار الفعلية. سوف تتعلم كيفية اكتشاف المصائد الدقيقة المضمنة في الأسئلة المتعلقة باستدلال نوع المتغير المحلي، وترتيب تنفيذ الدفق، وظروف السباق متعددة الخيوط. يتضمن كل سؤال في هذه المجموعة تحليلاً شاملاً، مما يضمن أنك تفهم بالضبط سبب الاختيار الصحيح ولماذا تفشل الخيارات الأخرى. معاينة أسئلة التدريب السؤال 1: ميزات لغة Java الأساسية ما هي نتيجة محاولة تجميع مقتطف التعليمات البرمجية التالي وتشغيله؟ Javapublic class LambdaVar {    public static void main(String[] args) {        java.util.function.BinaryOperator bo = (var s1, String s2) -> s1 + s2; // السطر 1        vardynamicList = new java.util.ArrayList<>(); // السطر 2       dynamicList.add(10);        فار البند =dynamicList.get(0); // السطر 3        System.out.println(item.getClass().getName());    }
  • أ) يجمع بشكل جيد ويطبع java.lang.Integer.
  • ب) يتسبب السطر 1 في حدوث خطأ في الترجمة لأنه لا يمكن خلط var مع أنواع صريحة في معلمات lambda.
  • ج) يتسبب السطر 2 في حدوث خطأ في الترجمة لأنه لا يمكن استخدام عامل التشغيل المعين مع var بدون سياق نوع صريح.
  • د) يتسبب السطر 3 في حدوث خطأ في الترجمة لأن الديناميكية الافتراضية هي ArrayList أنواع الكائنات ولا يمكنها حل getClass().
  • E) يتسبب كل من السطر 1 والسطر 2 في حدوث أخطاء في الترجمة.
  • F) يتم تجميع التعليمات البرمجية بنجاح ولكنها تطرح ClassCastException في وقت التشغيل.
الإجابات والتفسيرات:
  • الإجابة الصحيحة: B
  • تقسيم الخيارات:
    • لماذا B صحيح: يسمح Java 11 باستخدام var في معلمات lambda، ولكنه يفرض قاعدة اتساق صارمة. يجب عليك إما استخدام var لجميع المعلمات، أو استخدام أنواع صريحة لجميع المعلمات، أو استخدام أنواع ضمنية لجميع المعلمات. يعد الخلط (var s1, String s2) أمرًا غير قانوني ويؤدي إلى خطأ في الترجمة.
    • لماذا A غير صحيح: لن يتم تشغيل التعليمات البرمجية أبدًا لطباعة أي شيء لأن السطر 1 يكسر قواعد الترجمة.
    • لماذا C غير صحيح: السطر 2 صالح تمامًا. عندما يتم دمج var مع عامل التشغيل الماسي الفارغ <>، تستنتج Java النوع كقائمة ArrayList للكائنات.
    • لماذا D غير صحيح: يتم تجميع السطر 3 بدون مشكلة. نظرًا لأن DynamicList عبارة عن ArrayList، فإن get(0) يُرجع مرجع الكائن. يتم تعريف طريقة getClass() مباشرة في فئة الكائن، بحيث يمكن الوصول إليها بشكل كامل.
    • لماذا E غير صحيح: السطر 1 فقط يسبب فشل الترجمة؛ السطر 2 هو بناء جملة صالح قانونيًا.
    • لماذا F غير صحيح: يفشل الكود أثناء الترجمة، مما يعني أنه لا يمكن حدوث استثناءات في وقت التشغيل.
    • السؤال 2: البرمجة الوظيفية والتدفقات خذ بعين الاعتبار رمز التطبيق التالي. ما الذي سيتم عرضه في وحدة التحكم عند تنفيذ هذا الرمز؟Javaimport java.util.List;import java.util.Optional;
      public class StreamQuery {    public static void main(String[] args) {        List data = List.of("apple"، "banana"، "apricot"، "cherry");        نتيجة اختيارية = data. Stream()            .filter(s -> s.startsWith("a"))            .map(s -> {                System.out.print(s + " ");                return s.toUpperCase();           })            .sorted()            .findFirst();    }
      • أ) أبل المشمش
      • ب) تفاحة
      • ج) لن تتم طباعة أي شيء لأن خط أنابيب الدفق كسول ولا يقوم findFirst() بتشغيل عمليات وسيطة.
      • د) أبل المشمش الموز الكرز
      • هـ) يحدث خطأ في الترجمة لأنه لا يمكن استدعاءsorted() مباشرة بعد عملية التعيين التي تنتج سلاسل.
      • و) يتم طرح NullPointerException في وقت التشغيل لأنه يتم فحص عناصر القائمة بشكل تسلسلي.
      الإجابات والتفسيرات:
      • الإجابة الصحيحة: أ
      • تقسيم الخيارات:
        • لماذا تكون A صحيحة: التدفقات كسولة بشكل عام، لكن بعض العمليات الوسيطة مثلsorted() تعمل كحاجز. لفرز العناصر، يجب أن يقوم الدفق بتقييم جميع العناصر الأولية المطابقة أولاً. يقوم المرشح بتمرير "apple" و"apricot" إلى مرحلة الخريطة، التي تطبع كلا السلسلتين قبل أن تتمكن عمليةsorted() من تنظيمهما وتسليم السلسلة الأولى إلى findFirst().
        • لماذا B غير صحيح: إذا كانتsorted() غائبة، فإن منطق الدائرة القصيرة في findFirst() سيعالج "apple" فقط. ومع ذلك، فإن حاجز الفرز يفرض تقييم كلا العنصرين المتطابقين الصالحين.
        • لماذا C غير صحيح: findFirst() هي عملية طرفية، مما يعني أنها تنفذ مسار التدفق بشكل فعال.
        • لماذا D غير صحيح: يتم تجاهل عناصر مثل "الموز" و"الكرز" مبكرًا بواسطة مرحلة التصفية، لذلك لا تدخل أبدًا إلى كتلة الخريطة المراد طباعتها.
        • لماذا E غير صحيحة: تؤدي عملية الخريطة بأمان إلى Stream. تنفذ السلسلة Comparable، مما يجعلها مؤهلة تمامًا للأسلوب no-argumentsorted().
        • لماذا F غير صحيح: يقوم List.of بإنشاء مجموعة صالحة هيكليًا وغير فارغة، ولا تؤدي معالجة العناصر إلى تشغيل مؤشر فارغ.
      السؤال 3: التزامن، ومكونات JVM الداخلية، والأداءما هو سلوك البرنامج متعدد الخيوط التالي؟Javaimport java.util.concurrent.*;
      public class ConcurrencyTest {    public static void main(String[] args) throws Exception {        ExecutorService Service = Executors.newFixedThreadPool(2);        Future f1 =service.submit(() -> "المهمة 1");        Future f2 =service.submit(() -> { System.out.print("Task 2 "); });
              System.out.print(f1.get() + " ");        System.out.print(f2.get() + " ");        Service.shutdown();    }
      • أ) طباعة المهمة 2 المهمة 1 فارغة (أو المهمة 1 المهمة 2 فارغة اعتمادًا على جدولة سلسلة المحادثات).
      • ب) يتسبب في حدوث خطأ في الترجمة لأن الإرسال () لا يمكنه قبول تعبير لامدا بدون تحويل واجهة وظيفية صريحة.
      • ج) طباعة المهمة 1 المهمة 2 متبوعة بـ NullPointerException في وقت التشغيل عند f2.get().
      • د) يتم تجميع التعليمات البرمجية بنجاح ولكنها معلقة. إلى أجل غير مسمى لأن Service.shutdown() تم استدعاؤها بعد فوات الأوان.
      • E) يسبب خطأ في الترجمة لأن Future لا يمكنه التقاط القيمة المرجعة لتعبير lambda القابل للتشغيل.
      • F) يطبع المهمة 1 ثم يطرح InterruptedException.
      الإجابات والتفسيرات:
      • الإجابة الصحيحة: A
      • تقسيم الخيارات:
        • لماذا A صحيح: الأول تستهدف المهمة Callable وترجع "المهمة 1". المهمة الثانية تتطابق مع Runnable لأنها تحتوي على شكل إرجاع فارغ. عند استدعاء get() على مستقبل مدعوم بواسطة Runnable، فإنه يتم حظره حتى يكتمل التنفيذ ثم يُرجع قيمة فارغة. اعتمادًا على كيفية تحديد أولويات سلاسل الرسائل، قد يتم إخراج "المهمة 2" قبل أو بعد طباعة سلسلة المحادثات الرئيسية نتائج استدعاءات get().
        • لماذا B غير صحيح: يقوم المترجم بمطابقة التعبيرات الوظيفية بشكل نظيف مع الإصدارات المحملة بشكل زائد من الإرسال (القابل للاستدعاء) والإرسال (القابل للتشغيل).
        • لماذا C غير صحيح: يؤدي استدعاء get() في مهمة قابلة للتشغيل مكتملة إلى إرجاع قيمة فارغة كقيمة؛ ولا يؤدي إلى استثناء.
        • لماذا D غير صحيح: ينتهي الكود بشكل طبيعي. تحظر أساليب get() حتى تنتهي المهام، مما يضمن استدعاء إيقاف التشغيل () بأمان بعد ذلك مباشرة.
        • لماذا E غير صحيح: المستقبل يستخدم نمط حرف البدل، الذي يستوعب بشكل آمن نتيجة الإرجاع الفارغة للتسلسل القابل للتشغيل.
        • لماذا F غير صحيح: لا يتم تعطيل حلقات التنفيذ أو مقاطعتها، مما يعني أنه لن يتم طرح InterruptedException.
      • مرحبًا بك في تدريب الاختبار التجريبي. أكاديمية الاختبارات لمساعدتك في الاستعداد لامتحان Oracle Certified Professional: Java SE 11 Developer Practice Tests.
      • يمكنك إعادة إجراء الاختبارات عدة مرات كما تريد
      • هذا بنك أسئلة أصلي ضخم
      • يمكنك الحصول على دعم من المدربين إذا كانت لديك أسئلة
      • يحتوي كل سؤال على شرح تفصيلي
      • متوافق مع الهاتف المحمول مع تطبيق Udemy
      أتمنى أن تكون مقتنعًا الآن! وهناك الكثير من الأسئلة داخل الدورة.

      ما هي المتطلبات الأساسية لدخول الدورة والتسجيل فيها على موقعنا؟ رحلة التعلم:

      (احصل على الدورة للدخول إلى الموقع والتسجيل)

      يجب أن يكون لديك بريد إلكتروني (حساب بريد) تتذكره لنفسك وأيضًا يجب أن تتذكر كلمة مرور البريد الإلكتروني الذي ستسجل به ، وإذا لم يكن لديك حساب بريد إلكتروني ، فمن الأفضل إنشاء حساب (Gmail)

      اغلق مانع الاعلانات لتحصل على الدورة



      0 تعليقات