前 言
《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》的组织结构
《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》的内容面向深度复习OCA 8认证考试的人群,包括资深的Java专家和Java技术的初学者。每一章至少都覆盖认证考试的一个方面,强调Java编程中的“为什么”和“如何做”。
《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》下载资源中包含了两个80个问题的测试。
《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》不包含的内容
《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》并不包含Java的初学者手册。 《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》的所有内容都专注于考试内容。如果你从未学习过Java,我们建议你在Java基础知识上多花些时间。在没有了解如何编写、编译和运行简单的Java程序之前,不建议阅读《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》。而且,我们不介绍每一个主题所需要的先验知识。而另一方面,对于任一主题(主题内容严格按照实际考试目标制定),我们假定读者并未学习过该主题,并以此为前提来准备《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》的内容。即,我们假定读者不具备各个主题相关的知识,但是具备基础的Java知识。
同时,《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》的目的并不是让读者同时掌握考试内容和Java技术。这是一个认证考试的学习指南,它的目的性非常明确。这并不是说准备Java认证考试,对成为一名Java程序员毫无帮助。相反,即便是非常资深的Java开发人员,他们通常也会认为学习认证考试内容能够拓宽他们的知识面,丰富编程经验。
建议
在读完《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》后,留一些空闲时间做一次全面复习。你可能会使用如下方法复习《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》的内容:
(1) 重读所有的“两分钟冲刺”,或者是让别人考你这部分知识。这些内容也可以作为你考前死记硬背的知识点。你可以考虑针对这些内容做一些学习卡片。
(2) 重新阅读所有的考试须知。记住,这些考试须知来自于认证考试出题者之手。他们知道你将会面临的是什么,以及你需要小心的内容是什么。
(3) 重做自测题。在学习每一章后,完成自测题,有助于利用这些问题加强所学知识点。然而,更好的办法是先不做测试,而是在读完全书后,一次性将所有测试做完。就像是在完成认证考试一样(每次测试时,在单独的一张草稿纸上记录答案,这样在掌握内容之前,你可以一遍遍地重复测试)。
(4) 完成练习。我们对练习的设计涵盖了认证考试的考试内容,学习《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》最好的方法是实战练习。在每一步练习中,要确保了解它的真正含义。如果有知识点不够清楚,重新阅读当前章节的内容。
(5) 多编写Java代码。我们会多次强调这个建议。当编写此书时,我们编写了几百个Java小程序用来做研究。根据通过认证考试的考生的反馈,我们了解到几乎所有的考生中,在学习期间编写代码的考生的成绩都非常好。在尝试《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》的代码时,可能会创建无数的编译错误——抛开IDE,打开命令行,编写代码吧!
《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》内容介绍
OCA 8考试是IT行业最难的认证考试之一。而且很多考生都在毫无准备的情况下参加考试。通常作为程序员,我们只需要在疯狂的最后期限之前完成我们手中的项目。
但是这个认证考试的目的,是要证明你对Java知识的全面理解,不仅是熟悉工作中使用的部分。
仅靠经验不足以让你通过考试,因为你的理解可能与事实存有偏差。同时,仅仅是让手上的代码成功运行是不够的,你需要深度理解核心功能,并且在广度上能够覆盖使用语言时可能出现的任何情况。
对认证考试感兴趣的人
雇主、猎头、程序员,都很在意这个认证考试。通过考试,能够向现在或者未来的雇主证明三件事情:你很聪明;你知道如何学习和准备具有挑战性的测试;而最重要的是,你了解Java语言。如果雇主面前出现两个候选人,分别是通过认证考试的人和未通过认证考试的人,雇主深知通过考试的人不需要再花费额外的时间学习Java语言。
但是,这能够说明你可以熟练使用Java语言做软件开发了吗?并不是这样的,但这至少是一个好的开端。想要真正展示你的开发能力(对比对语言知识的掌握能力),你应该考虑参加Java Developer Exam,在这个考试中,你的试题是创建并完成一个项目,然后提交给评审员评分。
参加程序员的考试
在理想世界中,对知识掌握的评估,不能是简单地回答若干个测试问题。但是,人生本就不够完美,而且对每一个人的知识进行一对一的检测,也并不现实。
对于多数的Oracle认证,Oracle对考生的评估使用的是基于电脑的测试系统。为了抵制简单的死记硬背,Oracle认证考试为不同的考生提供不同的问题。在试题的开发过程中,基础测试者对成百上千个问题进行编译和修订。从这个庞大的题库中,抽取每一个主题的问题,组成不同版本的考试。
每个Oracle考试都有固定数量的问题,考试的时长非常充裕。考试的剩余时间显示在屏幕的角落。如果在考试过程中超时,测试将自动终止,未完成答案视为错误答案。
考试须知
很多经验丰富的考生都不会回到已完成的题目上更改答案,除非有非常确定的原因。只有当读题有误或理解问题有误时,才会更改答案。紧张可能会让你对答案做出第二次猜测,从而将正确答案改为错误答案。
在完成考试后,你会收到来自Oracle公司的一封电子邮件,告知考试结果已经公布在网站上。截至2017年冬季,考试成绩都可以在certview.oracle.com网站查询。如果需要打印证书,可以提出特殊申请。
问题的形式
Oracle Java考试的内容以多选题的形式呈现。
多选题
在早期的考试中,当遇到多选问题时,是不显示有多少个正确答案的。但是在后续的版本中,问题变得越来越难。因此,在现在的考试中,每一道多选题都标明了正确答案的个数。《OCA Java SE 8程序员认证考试指南(Exam 1Z0-808)》每一章最后的自测题中,严格遵循实际考试中的问题格式、措辞和难度,但是有两处例外:
● 我们的问题尽量不标明有多少个正确答案(我们会说“选择所有正确的答案”)。我们的目的是让你能够掌握书中的内容。当标明正确答案的个数时,有些聪明的考生能够从中排除错误答案。而且,如果正确答案的个数已知,就可以选择最可能正确的几个答案。我们的目的是锻炼你,让你在真正的考试中更加游刃有余。
● 真正的考试往往在问题中标注代码的行数。有时,我们不会为代码标记行数——因此,在多数情况下,我们有更多的空间在关键点上添加备注。在实际考试中,如果代码的起始行是第1行,这意味着你在看整篇代码。如果代码的起始行比1大,这意味着你在看的是一部分源代码。在查看部分源代码时,其前提是未呈现的其他代码部分是正确的(例如,除非有明显的说明,否则我们认为呈现的部分源代码对应的源码中,有正确的import和package语句)。
考试须知
当你发现自己被某个多选问题卡住时,使用你的草稿纸(或白板)写下你认为最有可能正确的两三个答案,然后标记出你认为最有可能正确的答案。例如,下面是参加考试的一份草稿纸上的内容:
解释对象的生命周期(创建,“解除引用”,以及垃圾收集)(2.4) 第3章
使用封装类,例如Boolean、Double、Integer(2.5) 第6章
使用运算符和条件结构
使用Java运算符(3.1) 第1章和第4章
使用==和equals()验证字符串和对象之间的相等性(3.2) 第1章和第4章
创建if和if/else,以及三目运算(3.3) 第4章和第5章
使用switch语句(3.4) 第5章
创建并使用数组
声明、实例化、初始化,以及使用一个一维数组(4.1) 第3章和第6章
声明、实例化、初始化,以及使用一个多维数组(4.2) 第3章和第6章
使用循环结构
创建并使用while循环(5.1) 第5章
创建并使用for循环,包括改进后的for循环(5.2) 第5章
创建并使用do/while循环(5.3) 第5章
比较循环结构(5.4) 第5章
使用break和continue(5.5) 第5章
处理方法和封装
创建包含参数和返回值的方法(6.1) 第2章
在方法和字段上使用static关键字(6.2) 第1章和第2章
创建和重载构造函数(6.3) 第1章和第2章
使用访问修饰符(6.4) 第1章
类的封装性原则(6.5) 第2章和第6章
当引用变量在函数中被修改时,判断对象引用变量和原始变量受到的影响(6.6) 第3章
处理继承
描述继承和它的优点(7.1) 第2章
编写代码展示多态的使用(7.2) 第2章
判断类型转换的时机(7.3) 第2章
使用super和this访问对象和构造函数(7.4) 第2章
使用抽象类和接口(7.5) 第1章和第2章
(续表)
考试目标 包含在书中
处理异常
区分检查异常、运行时异常和错误(8.1) 第5章
创建try-catch代码块,判断异常如何改变程序的执行顺序(8.2) 第5章
描述异常处理的优点(8.3) 第5章
创建并调用一个可以抛出异常的方法(8.4) 第5章
认识常见的异常类(8.5) 第5章
处理Java API的选择类
使用StringBuilder类处理数据(9.1) 第6章
创建并处理字符串(9.2) 第6章
创建并处理日历数据(9.3) 第6章
声明和使用ArrayList(9.4) 第6章
编写一个简单的lambda表达式并使用Lambda Predicate表达式(9.5) 第6章