考试1z0-819 Oracle认证专家:Java 11开发人员-通行证说明





在10月初,Oracle使获得Java认证的过程变得更加容易-尽管考试价格没有变化,但您现在需要通过一项考试,而不是两次考试。我想对谁对任务的水平以及有关考试的更多细节感兴趣?我将描述为什么决定通过考试,我如何准备,我有什么问题以及实际上得出的结论。



10月,我看到一个消息,Oracle正在启动一项新考试1z0-819,以取代旧的1z0-815和1z0-816。以前,要成为Oracle认证专家,您必须通过两次考试,总共花费300美元。现在数量已减少一半。此外,问题的数量已更改,如果每次考试的前半部分分配了80个问题,并且为此分配了150分钟,那么现在的考试将持续90分钟,其中包含50个涵盖过去考试所有主题的问题。大多数问题可以有几个正确答案。



让我们从追求的目标入手:由于我接受了物理教育,并且自己学习过Java,因此我认为,该认证可以帮助我掌握Java的知识,并拥有一个文档,确认我可以进行编程。 ...



如何注册?在Oracle合作伙伴pearsonvue.com上注册,链接一个Oracle帐户,然后选择如何使用它-在中心还是在家中。如果选择了在家中的选项,那么他们将在整个考试期间通过摄像机和麦克风跟随您,房间中应该没有人,您不能与任何人交谈,只能看着屏幕,互联网必须稳定,无中断,否则,结果将被取消。我选择在专门的中心租房,所以比较安静。



哪些材料可以帮助准备工作?如果您有任何编程经验,建议您使用OCP Oracle认证专业Java SE 11程序员II学习指南:Scott Selikoff,Jeanne Boyarsky的考试1Z0-816和考试1Z0-817本书是为1z0-816考试而写的,涵盖了大部分考试。这些作者还有一本书,可以为上一次考试(1z0-815)的第一部分做准备,但是它是为绝对初学者设计的,坦率地说,很无聊。此外,阅读本书后,您可以在网上找到模拟考试以检查您的知识。



什么问题?仅50个问题,即90分钟,即每个问题少于2分钟。有些困难,也就是说,有时您需要思考超过2分钟。在某些问题上,可能有几个正确答案。总共最多可以有7个答案。有必要正确回答68%的问题。



我想引起您的注意。关于流,lambda和功能接口存在很多问题。



您可以执行以下任务:



您需要找到哪一行中的错误(如果有):



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主题的两个问题,但我几乎没有达到所分配的时间。



在交付申请中,您可以勾选那些对您来说似乎很困难的问题,并在最后返回。我建议您查看计时器,如果问题要花费您超过两分钟的时间,请跳过该计时器;如果时间允许,请稍后再返回。



准备多少?



如果您不是Java开发人员的课程老师并且上班,那么我建议您预留一个月的准备时间-为此分配一两个小时的工作时间。但是,当然这取决于您的水平。



可以得出什么结论?



考试准备可以帮助您构建知识并拓宽API的视野。特别是,我发现了处理文件的两个有趣的方面。



认证对于与国外客户进行远程合作的人员很有用-确认他们的水平,并且在面试中也是一个加分,至少它使您可以跳过有关Java的问题。



All Articles