試験1z0-819Oracle Certified Professional:Java 11Developer-合格メモ





10月初旬、OracleはJava認定の取得を容易にしました。試験の価格は変更されていませんが、2つの試験ではなく、1つに合格する必要があります。タスクのレベルと試験の詳細に興味がある人は、カットの下で尋ねます-なぜそれを取ることにしたのか、どのように準備したのか、どのような質問をしたのか、どのような結論を下したのかを説明します。



10月に、Oracleが古い1z0-815と1z0-816に代わる新しい試験1z0-819を開始するというニュースを見ました。以前は、Oracle Certified Professionalになるには、2つの試験に合格し、合計300ドルを費やす必要がありました。現在、金額は半分に削減されています。さらに、質問の数が変更されました。各試験の初期に80の質問があり、これに150分が割り当てられていた場合、試験は90分続き、過去の試験のすべてのトピックをカバーする50の質問が含まれます。ほとんどの質問には、いくつかの正解があります。



私が追求した目標から始めましょう:私は物理学の教育を受けており、自分でjavaを勉強したので、私の意見では、この認定はjavaの知識を構築するのに役立つ可能性があり、また私ができることを確認する文書を持っています..。



登録方法は? Oracleパートナーのpearsonvue.comに登録し、Oracleアカウントをリンクして、センターまたは自宅から取得する方法を選択します。自宅からのオプションが選択されている場合、彼らは試験中カメラとマイクを通してあなたをフォローします、部屋には誰もいないはずです、あなたは誰とも話すことができず、画面を見るだけです、インターネットは中断なしで安定している必要がありますそれ以外の場合、結果はキャンセルされます。専門のセンターで借りることを選んだので、静かです。



どのような材料が準備に役立ちますか?プログラミングの経験がある場合は、OCP Oracle Certified Professional Java SE 11 Programmer II Study Guide:Exam1Z0-816およびExam1Z0-817 by Scott Selikoff、JeanneBoyarskyを使用することをお勧めします。この本は1z0-816試験用に書かれており、試験のほとんどをカバーしています。これらの著者は、最後の試験1z0-815の最初の部分の準備のための本も持っていますが、それはまったくの初心者向けに設計されており、率直に言ってそれを読むのは退屈です。さらに、本を読んだ後、あなたの知識をチェックするためにインターネット上で試験モックを見つけることができます。



どんな質問?たった50の質問、つまり90分、つまり1つの質問につき2分未満が与えられます。難しいものもあります。つまり、2分以上考える必要がある場合があります。いくつかの質問では、いくつかの正解が可能です。合計で最大7つの回答があります。質問の68%に正しく答える必要があります。



私があなたの注意を引きたいこと。ストリーム、ラムダ、および機能インターフェイスについては多くの質問があります。



あなたはこの種のタスクを得ることができます:



もしあれば、どの行でエラーを見つける必要があります:



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以上の質問の大部分を占めています。マルチスレッド、ファイルの操作、注釈、モジュールのトピックは、それぞれ2つまたは3つの質問のみで提示されます。jdbcの操作、ローカリゼーションなどの他のトピック。主に1つの問題について。

試験に参加できるトピックの完全なリストは、こちらにあります



これとは別に、これは私にとっての発見だったので、言及したいと思います。doPrivilegedAPIの使用について2つの質問に出くわしましたが、これまで職場でこれに遭遇したことはありませんでした。したがって、このトピックに個別に取り組む価値がありますここで確認できます

もう一度、時間は非常に限られているという事実に注意を向けたいと思います。doPrivilegedトピックに関する2つの質問をスキップしたにもかかわらず、割り当てられた時間にほとんど会いませんでした。



配達の申し込みでは、難しいと思われた質問にチェックを入れて、最後に戻ることができます。タイマーを確認することをお勧めします。質問に2分以上かかる場合はスキップし、時間が許せば後で戻ってください。



どれくらい準備しますか?



あなたがJava開発者向けのコースの教師ではなく、仕事に行く場合は、準備のために1か月を確保することをお勧めします。これには、仕事の1〜2時間後に割り当てます。しかしもちろん、それはすべてあなたのレベルに依存します。



どのような結論を導き出すことができますか?



試験の準備は、知識を構造化し、APIの視野を広げるのに役立ちます。特に、ファイルを操作する際の興味深い側面をいくつか発見しました。



認定は、外国の顧客とリモートで作業する人にとって、レベルを確認するのに役立ちます。また、インタビューでもプラスになります。少なくとも、javaに関する質問をスキップできます。



All Articles