في أوائل أكتوبر ، سهلت Oracle الحصول على شهادة Java - بدلاً من اختبارين ، تحتاج الآن إلى إجراء اختبار ، بينما لم يتغير سعر الاختبار. من يهتم بمستوى المهام ومزيد من التفاصيل حول الامتحان ، أسأل تحت الخفض - سأشرح لماذا قررت الخضوع له ، وكيف أعددته ، وما الأسئلة التي لدي وما هي الاستنتاجات التي توصلت إليها.
في أكتوبر ، رأيت الأخبار التي تفيد بأن Oracle تطلق اختبارًا جديدًا ، 1z0-819 ، ليحل محل القديم 1z0-815 و 1z0-816. في السابق ، لكي تصبح محترفًا معتمدًا من Oracle ، كان عليك اجتياز اختبارين وإنفاق إجمالي 300 دولار. الآن تم تخفيض المبلغ إلى النصف. بالإضافة إلى ذلك ، تم تغيير عدد الأسئلة ، إذا كان هناك في وقت سابق 80 سؤالًا في كل اختبار وتم تخصيص 150 دقيقة لذلك ، يستمر الاختبار الآن 90 دقيقة ويحتوي على 50 سؤالًا تغطي جميع الموضوعات من الاختبارات السابقة. يمكن أن تحتوي معظم الأسئلة على عدة إجابات صحيحة.
لنبدأ بالأهداف التي سعيت إليها: بما أنني حصلت على تعليم فيزياء ودرست جافا بنفسي ، في رأيي ، يمكن أن تساعد هذه الشهادة في هيكلة معرفتي بجافا ، ولديها أيضًا وثيقة تؤكد أنني أستطيع ...
كيف تسجل؟ قم بالتسجيل مع أحد شركاء Oracle pearsonvue.com ، اربط حساب Oracle ، اختر كيفية الحصول عليه - في المركز أو من المنزل. إذا تم تحديد الخيار من المنزل ، فسيقومون بمتابعتك عبر الكاميرا والميكروفون طوال الامتحان ، ويجب ألا يكون هناك أحد في الغرفة ، ولا يمكنك التحدث إلى أي شخص والنظر فقط إلى الشاشة ، ويجب أن يكون الإنترنت مستقرًا ، دون انقطاع ، خلاف ذلك ، يتم إلغاء النتيجة. اخترت الاستئجار في مركز متخصص ، لذلك فهو أكثر هدوءًا.
ما هي المواد التي يمكن أن تساعد في التحضير؟ إذا كانت لديك أي خبرة في البرمجة ، فإنني أوصي باستخدام OCP Oracle Certified Professional Java SE 11 Programmer II Study Guide: Exam 1Z0-816 و Exam 1Z0-817 بواسطة Scott Selikoff و Jeanne Boyarskyتمت كتابة هذا الكتاب لامتحان 1z0-816 ويغطي معظم الامتحان. هؤلاء المؤلفون لديهم أيضًا كتاب للتحضير للجزء الأول من الامتحان الأخير 1z0-815 ، ولكنه مصمم للمبتدئين تمامًا وقراءته مملة بصراحة. بالإضافة إلى ذلك ، يمكنك العثور على نماذج الاختبار على الإنترنت للتحقق من معلوماتك بعد قراءة الكتاب.
أيه اسئلة؟ 50 سؤالاً فقط ، والتي تعطى 90 دقيقة ، أي أقل من دقيقتين لكل سؤال. هناك أشياء صعبة ، تحتاج أحيانًا إلى التفكير لأكثر من دقيقتين. في بعض الأسئلة ، هناك عدة إجابات صحيحة ممكنة. يمكن أن يصل إجمالي الإجابات إلى 7. من الضروري الإجابة بشكل صحيح على 68٪ من الأسئلة.
ما أود أن ألفت انتباهكم إليه. هناك الكثير من الأسئلة حول التدفقات و lambdas والواجهات الوظيفية.
يمكنك الحصول على هذا النوع من المشاكل:
تحتاج إلى البحث عن الخطأ في أي سطر ، إن وجد:
IntStream is = IntStream.of(1, 3, 5);
int x = is.filter(i->i%2 == 0).average(); //1
System.out.println(x);
int y = is.filter( i->i%2 != 0 ).sum();//2
System.out.println(y);
is = IntStream.of(1, 3, 5, 9);
int z = is.filter( i->i%3 != 0 ).count();//3
System.out.println(z);
أيضا المهام باستخدام جامعي. ما سيتم عرضه:
class Student {
public static enum Grade {A, B, C, D, F}
private String name;
private Grade grade;
public Student(String name, Grade grade) {
this.name = name;
this.grade = grade;
}
public String toString() {
return name + ":" + grade;
}
}
class TestClass {
public static void main(String[] args) {
var ls = Arrays.asList(new Student("S1", Student.Grade.A),
new Student("S2", Student.Grade.A),
new Student("S3", Student.Grade.B),
new Student("S4", Student.Grade.C),
new Student("S5", Student.Grade.F));
var group = ls.stream()
.filter(student -> student.getGrade() != Student.Grade.F)
.collect(Collectors.groupingBy(Student::getGrade,
Collectors.mapping(Student::getName, Collectors.toList())));
System.out.println(group);
}
}
في الواقع ، تتشابك هذه الأسئلة مع أسئلة حول المجموعات. على سبيل المثال ، تحتاج إلى الإجابة عما سيعرضه الكود التالي على الشاشة ، إذا تم تجميعه على الإطلاق:
var collection = new HashSet<>();
collection.add(1);
var list1 = List.of(collection);
collection.add(2);
var list2 = List.copyOf(collection);
System.out.println(list1);
System.out.println(list2);
وكيف ستتغير النتيجة إذا كتبنا بدلاً من السطر الأول
var collection = Arrays.asList(1,2,3);
يمكن استخدام var على وجه التحديد لإرباك الممتحن:
class X {
public void print(List<Integer> lst) {
System.out.println("X list " + lst);
}
}
class Y extends X {
public void print(List<Integer> lst) {
System.out.println("Y list " + lst);
}
}
public class TestClass {
public static void main(String[] args) {
X x = new Y();
Y y = new Y();
var list = new ArrayList<>();
list.add(1);
x.print(list);
y.print(list);
}
}
تحتاج إلى تحديد ما سيتم عرضه ، أو الإشارة إلى أن البرنامج لن يتم تجميعه ، أو سيتم طرح استثناء أثناء العملية.
تحتاج إلى فهم ما يحدث أثناء الميراث.
افترض أن هناك طريقة معطاة في فئة ذات التوقيع التالي:
public List<Integer> getCollection() {
return new ArrayList<Integer>();
}
ما هي الطرق أدناه يمكن أن تكون في الفئة الموروثة؟
public List<? super Integer> getCollection() {
return new ArrayList<Integer>();
}
public List<? extends Integer> getCollection() {
return new ArrayList<Integer>();
}
public ArrayList<Integer> getCollection() {
return new ArrayList<Integer>();
}
هناك بضعة أسئلة حول واجهات من هذا النوع:
interface Bird {
default String fly() {
return "fly";
}
}
interface Parrot extends Bird {
public String fly();
}
public class RainbowParrot implements Parrot {
public static void main(String[] args) {
Bird b = new RainbowParrot();
System.out.println(b.fly());
}
}
كيف سيعمل البرنامج في هذه الحالة؟
تمثل هذه الموضوعات الجزء الأكبر من الأسئلة ، ربما أكثر من 25. موضوعات تعدد مؤشرات الترابط ، والعمل مع الملفات ، والتعليقات التوضيحية ، والوحدات النمطية مع سؤالين أو ثلاثة فقط لكل سؤال. موضوعات أخرى مثل العمل مع jdbc والتعريب وما إلى ذلك. في الغالب حول قضية واحدة.
يمكن العثور على قائمة كاملة بالموضوعات التي يمكن أن تكون في الاختبار هنا .
بشكل منفصل ، أود أن أذكر ، نظرًا لأن هذا كان اكتشافًا بالنسبة لي - صادفت سؤالين كاملين حول استخدام doPrivileged API ، لم أجد هذا في العمل من قبل. لذا فإن الأمر يستحق العمل على هذا الموضوع بشكل منفصل ، يمكنك رؤيته هنا .
مرة أخرى ، أود أن ألفت انتباهكم إلى حقيقة أن الوقت محدود للغاية ، على الرغم من حقيقة أنني تخطيت سؤالين حول موضوع doPrivileged ، إلا أنني بالكاد قابلت الوقت المخصص.
في طلب التسليم ، يمكنك وضع علامة على تلك الأسئلة التي بدت لك صعبة والعودة إليها في النهاية. أوصي بالنظر إلى المؤقت ، إذا استغرق السؤال أكثر من دقيقتين ، فتخطاه ، وإذا سمح الوقت ، عد إليه لاحقًا.
كم تستعد؟
إذا لم تكن مدرسًا لدورات لمطوري جافا وتذهب إلى العمل ، فإنني أوصي بتخصيص شهر للتحضير - تخصيص ساعة أو ساعتين لهذا بعد العمل. لكن بالطبع كل هذا يتوقف على مستواك.
ما هي الاستنتاجات التي يمكن استخلاصها؟
يساعدك التحضير للاختبار على بناء معرفتك وتوسيع آفاق API الخاصة بك. على وجه الخصوص ، اكتشفت بعض الجوانب المثيرة للاهتمام للعمل مع الملفات.
يمكن أن تكون الشهادة مفيدة لأولئك الذين يعملون عن بعد مع عملاء أجانب - لتأكيد مستواهم ، وستكون أيضًا ميزة إضافية في المقابلات ، على الأقل ستسمح لك بتخطي الأسئلة حول جافا.