前 言
本书旨在帮助你准备通过Oracle的Java SE 7 Programmer I考试以获得OCA Java SE 7 Programmer认证。本书信息的呈现方式包括文字内容、代码示例、练习以及其他方式。为了达到最佳效果,所有的代码示例都在Macintosh OS X和Windows计算机上验证过。关于所有考试目标的信息也都详细涵盖。本书涵盖的主要领域列举如下:
● Java SE平台
● Java开发和支持工具
● Java基础,包括语句、变量、方法原语和运算符
● String和StringBuilder类的方法和功能
● 基本的Java元素,包括基本数据类型、数组、枚举和对象
● 类和接口,包括类之间的关系
● 面向对象的原则
● 异常处理
本书后面包括多个附录,以辅助你学习。
关于OCA Java SE 7 Programmer认证考试的具体信息
OCA Java SE 7 Programmer考试目标的具体信息详见Oracle的认证网站http://education.oracle. com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&p_org_id=1001&lang=US&p_exam_id=1Z0_803。当你报名考试时,Pearson VUE将提供关于考试注册流程的具体细节。但是,下面几小节详细讲述了报名和参加考试时需要知道的最重要的信息。关于考试目标最新的信息请访问Oracle Certification网站。
考试参考
这门考试的正式名称是Java SE 7 Programmer I (1Z0-803)考试。如果你通过了考试,收到的证书是Oracle认证工程师以及Java SE 7程序员认证。
在网上用谷歌搜索,会看到人们和资源都称呼这个1Z0-803考试为OCA考试、OCAJ考试、OCAJP考试和OCAJP7。这分别对应OCA认证、OCAJ认证、OCAJP认证和OCAJP7认证。
为简单起见,我们已经尽最大的努力将该考试称为OCA考试,将认证称为OCA认证。
Java SE 7 Programmer I (1Z0-803)考试动态
这门考试是面向希望获得基础Java认证的成熟Java程序员和开发者。无先决条件的考试由90个问题组成。必须有75%的通过率——换而言之,90个问题中至少有68个必须回答正确。设定的时间限制为150分钟(即2小时30分钟)。
目前美国参加该考试的价格是300美元。如果你受雇于一个技术组织,可以查看你的公司是否有教育援助政策。
Java标准版5和6,认证工程师(1Z0-850)考试动态
传统的SCJA(CX-310-019)考试已经更新到Java标准版5和6,通过注册工程师考试将获得Oracle认证工程师,以及Java SE 5/SE 6认证的资格。新的考试代码为1Z0-850,并且针对以下认证考生:
● 入门级和初级程序员,希望开始或继续走使用Java技术的道路。
● 软件开发者和技术领导,希望巩固其Java相关的技能。
● 项目和程序经理,希望获得工作的真实情况以及他们团队所遇到的挑战,完善其规划和方向。
● 计算机科学和信息系统的学生,希望补充他们的学业。
● 寻找丰厚职位的IT求职者。
● 认证的求职者,希望完善自己的简历或履历。
如果你的目标是Java SE 5/6的考试版本而不是当前的Java SE 7版本,本书的前身SCJA Sun Certified Java Associate Study Guide (CX-310-019)(McGraw-Hill,2009)是很好的资源,可以帮助你获得认证。
预约OCA考试
该考试必须在有监考的Pearson VUE考试地点进行。你可以通过三种方法中的一种来预约考试:
● 在线预约
● 通过电话预约
● 通过考试中心预约
关于以上这些选项所需要的所有信息,可以在Pearson VUE的网站(www.pearsonvue. com/oracle/)上找到。快速浏览一下,图I-1显示了在Pearson VUE网站上预约的过程。
图I-1 预约考试
Pearson VUE的考试券
考试券(预付考试认证)可以用于购买OCAJP7考试。关于购买考试券的更多信息,请访问Pearson VUE网站的试卷信息页面www1.pearsonvue.com/vouchers/,或者访问Pearson VUE的考试券商店 www1.pearsonvue.com/contact/voucherstore/。
Pearson VUE Test Center Locator
如果你有兴趣寻找你附近的考试场地而不必注册,则可以使用www.vue.com/vtclocator/上的Pearson VUE Test Center Locator。
准备OCA考试
在考试前好好休息并吃一顿健康的早餐,将有助于取得好的考试成绩,不过你应该已经知道这些。考试的前晚不要临时抱佛脚。如果你发现需要补习,应该重新安排考试,因为你还没有准备好考试。
你需要带上一些东西参加考试,并且会留下一些东西。让我们来看一看该做什么和不该做什么。
待办事项
● 确保(至少)带两种形式的身份证明。有效的身份证件包括有效的护照、当前的驾驶执照、政府颁发的身份证、信用卡或者支票兑现卡。有两项必须包括,并至少有一项必须包括你的照片。当签名时,确保不要速写,因为它必须匹配你的身份证件。
● 提前到达。计划在考试预订开始时间前15分钟至半个小时内到达。你可能会发现,该中心需要为考试安排几个人。早点进入可能需要早点起床,或者至少确保不要迟到。
● 提前上厕所。这门考试需要接近两个小时才能完成。想要休息有些棘手,并且很有可能不允许。另外,你休息也不能暂停分配给你的时间。
● 打印出考试场地的路线。或者获得地址并输入到你的GPS导航仪或导航应用程序中(如果有的话)。
注意事项
● 不要把笔记本电脑、平板电脑、手机或寻呼机带入考场。此外,一些场所可能要求你不能携带手表或钱包进入考试区域。
● 不要携带书籍、笔记或书写用品。可能会给你一个可擦写的书写板使用。考试开始后才能使用书写板。
● 不要携带大件物品。可能没有用于存放书包和外套的大容量存储空间。但是,考试场所可能有小的安全储物柜供你使用。在存放手机或其他电子设备之前,先将其关闭。
● 不要带饮料或小吃进考场。但是在准备考试时,可以自由地享用茶点。
● 不要在考试中心学习。
参加OCA考试
在参加考试之前,监考人员可能需要采集你的照片。展示你最好的微笑。你可能需要签名并等待监考人员在PC上设置你的考试。在我的考试中,监考人员调整了房间里的网络摄像头,这样可以正面对着我。房间中可能还有其他人在参加其他的测试,所以如果你对鼠标点击和一般的噪音或者你身边的人敏感,请带上耳塞。监考人员应该会确保你获得第一个问题,然后他将离开房间。祝你好运!
考试结束后,可能会给你一项可选的基于计算机的调查。这项调查会询问你关于技术背景和其他相关信息。一个常见的误解是,这些问题的答案可能与你参加的考试问题有关;但是,本次调查与你收到的考试问题无关。调查可能需要几分钟才能完成。收集的信息对于那些开发和细化未来的考试很重要,所以要如实地回答问题。
完成考试后,你的结果将会显示在屏幕上,并且还会打印出来。找到监考人员(考试人员),从打印机获取你的结果并签名。这里的要点是,你不应该在考试完成后就立即离开,而应该留下来并拿你的结果。
分享你的成功
我们希望知道你是如何通过考试的。你可以给我们发电子邮件到results@ocajexam.com,或者将结果发布到Java Ranch的Wall of Fame(http://faq.javaranch.com/java/Ocajp7WallOfFame)。
重新预约OCA考试
如果你需要重新预约(或者取消)考试,要在考试开始之前的24小时完成。使用Pearson VUE的Test Taker Services页面(www.vue.com/programs/)来帮助你重新预约或者直接联系Pearson VUE。在考试前24小时重新预约则收取相同的考试费。如果你不露面参加考试(也就是说,如果你不出现),将不给予退款。
其他的OCA资源
许多资源可以补充这本书,帮助你实现OCA认证的目标。这些资源包括Java软件实用工具、Java社区论坛、语言规范和相关文档、OCA相关的书籍、在线和可购买的模拟考试,以及软件工具(如IDE的CASE工具、UML建模工具,等等)。虽然这些外围的工具和资源是非常有益和值得推荐的,但是对于通过OCA考试来说它们是可选的。本书试图涵盖所有必要的材料。
以下各小节详细讲述前面提到的资源。
Java软件
● Java开发工具包,www.oracle.com/technetwork/java/archive-139210.html
● Java企业版(超出了考试范围,在此提供它只是为了让你了解),www.oracle.com/ technetwork/java/ javaee/overview/index.html
Java在线社区论坛
● Oracle技术论坛,https://forums.oracle.com/forums
● Java Ranch的Big Moose Saloon Java技术论坛,www.coderanch.com/forums
● Java Programming论坛,http://javaprogrammingforums.com/
● </dream.in.code>,www.dreamincode.net/forums/forum/32-java/
● IBM-Java技术论坛,www.ibm.com/developerworks/forums/dw_jforums.jspa
● Tek Tips Java论坛,www.tek-tips.com/threadminder.cfm?pid=269
● Code Guru-Java Programming,http://forums.codeguru.com/forumdisplay.php?f=67
● Go4Expert,www.go4expert.com/forums/forumdisplay.php?f=21
● //javareference,www.javareference.com/
● Java用户组,http://java.sun.com/community/usergroups/和http://home.java.net/jugs/java-user-groups
Java工具及技术规格和文档
● Java教程,http://docs.oracle.com/javase/tutorial/
● Java SE 7文档,http://docs.oracle.com/javase/7/docs/
● Java SE 7 API规范,http://docs.oracle.com/javase/7/docs/api/
● jDocs Java文档库,www.jdocs.com/
● UML规范,www.omg.org/spec/UML/Current/
● Java语言规范Java SE 7版,http://docs.oracle.com/javase/specs/jls/se7/jls7.pdf
● Java语言规范第3版,http://java.sun.com/docs/books/jls/
涵盖OCA考试内容的其他书籍
你手头上的这本书足以涵盖通过考试需要知道的一切,补充阅读只是起帮助作用。考虑查看下列书籍来完善自己的技能:
● Java Pocket Guide,由Robert和Patricia Liguori合著(O’Reilly Media Inc.,2008)
● NetBeans IDE Programmer Certified Expert Exam Guide (Exam-310-045),由Robert Liguori和Ryan Cuprak合著(McGraw-Hill,2010年7月)
● Java: The Complete Reference, Eighth Edition,由Herbert Schildt所著(McGraw-Hill,2011年6月)
● UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition),由Martin Fowler所著(Addison-Wesley,2003)
● SCJA Sun Certified Java Associate Study Guide for Test CX-310-019, 2nd Edition,由Cameron W. McKenzie所著(PulpJava,2007)
● SCJA Sun Certified Java Associate Mock Exam Questions,由Cameron W. McKenzie所著(PulpJava,2007)
OCA模拟考试
除了与本书相关的在线模拟考试,还存在其他各种免费的和商业的OCA和传统的SCJA模拟考试。这里列出了各种资源。
● Oracle考试练习,http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id= 208
● uCertify PrepKit和可下载的模拟考题,www.ucertify.com/exams/Oracle/CX310-019.html
● Enthuware的模拟考试,http://enthuware.com/
● Whizlabs的SCJA Preparation Kit,www.whizlabs.com/scja/scja.html
● eJavaguru.com的在线模拟考试,www.ejavaguru.com/scjafreemockexam.php
● SCJA.de的电子书和在线模拟考题,http://scja.de/
● ExamsExpert,www.examsexpert.com/oracle-certifications.html
● Transcender(超越者),www.selftestsoftware.com/certprep-materials/oracle.kap
● 自测软件,www.transcender.com/
集成开发环境
集成开发环境(Integrated Development Environment,IDE)是开发套件,允许开发者编辑、编译、调试、连接到版本控制系统、协作以及做更多的事情,这取决于具体工具。大多数现代的IDE对各种软件模块有增件(add-in)功能,以增强IDE的功能。没有理由不使用IDE。因为其受欢迎程度、易用性和Oracle的支持,我们(作者)推荐你使用NetBeans IDE来准备考试。不过,下面所列举的任意IDE都够用:
● Netbeans IDE,www.netbeans.org
● Oracle JDeveloper IDE,www.oracle.com/technetwork/developer-tools/jdev/overview/
● IntelliJ IDEA,www.jetbrains.com
● Eclipse IDE,www.eclipse.org
● JCreator IDE,www.jcreator.com
● BlueJ,www.bluej.org
带UML建模功能的工具
一些工具和IDE具有UML功能。需要注意的是,OCA考试的前身包括UML建模的问题。然而,在OCA中不包括关于UML的问题。如果想研究UML建模,可以查看以下几个工具,但再次声明,这不在考试范围内。但是,我们相信,软件程序员和开发者应该在其职业生涯的早期学习UML。
● NetBeans IDE,http://netbeans.org/features/uml/
● JDeveloper IDE,www.oracle.com/technetwork/developer-tools/jdev/jdeveloper11g-datasheet-1- 133040.pdf
● Enterprise Architect CASE工具,www.sparxsystems.com/products/ea/
● UML的可视化范式(提供流行的IDE插件),www.visual-paradigm.com/product/vpuml/
其他资源
其他各种资源,例如下面这些资源,包括游戏和Java的新闻媒体,可以帮助你在考试中获得高分。
● Java Ranch Rules Round Up Game,www.javaranch.com/game/game2.jsp,如图I-2所示
图I-2 Java Ranch Rules Round Up游戏
● DZone,http://java.dzone.com
● Server Side,http://theserverside.com
● Java Ranch上的OCA FAQ,www.coderanch.com/how-to/java/OcajpFaq
● Java Tutorial(Programmer Level I Exam),http://docs.oracle.com/javase/tutorial/extra/certific- ation/javase-7-programmer1.html
● Java语言规范,http://docs.oracle.com/javase/specs/
Oracle在Java技术方面的认证程序
本节将考试的目标映射到本书具体的涵盖内容。
考试1Z0-803
考试准备清单
官 方 目 标 本书涵盖内容 章 号 初 学 者 中 级 专 家
1.4 导入其他Java包,使代码可以访问它们 理解包 1
补充材料 理解包派生类 1
1.2 定义Java类的结构 理解类结构 1
1.3 用main方法创建可执行的Java应用程序 编译器和解释Java代码 1
补充材料 理解赋值语句 2
3.4 创建if和if/else结构 创建和使用条件语句 2
3.5 使用switch语句 创建和使用条件语句 2
5.2 创建和使用for循环,包括增强的for循环 创建和使用迭代语句 2
5.1 创建和使用while循环 创建和使用迭代语句 2
5.3 创建和使用do/while循环 创建和使用迭代语句 2
5.4 对比循环结构 创建和使用迭代语句 2
5.5 使用break和continue 创建和使用控制转换语句 2
3.1 使用Java运算符 理解基础运算符 3
3.2 重写运算符优先级 理解运算符优先级 3
2.7 创建和操作字符串 使用String对象及其方法 3
2.6 使用StringBuilder类及其方法操作数据 使用StringBuilder对象及其方法 3
3.3 使用==和equals()测试字符串和其他对象之间的相等性 测试字符串和其他对象之间的相等性 3
2.1 声明和初始化变量 理解基本数据类型、枚举和对象 4
2.2 区别对象引用变量和基本数据类型变量 使用基本数据类型、枚举和对象 4
1.1 定义变量的作用域 理解变量的作用域 5
2.4 解释对象的生命周期 理解变量的作用域 5
7.5 使用super和this访问对象和构造函数 使用this和super关键字 5
6.1 创建带参数和返回值的方法 创建和使用方法 5
(续表)
考试准备清单
官 方 目 标 本书涵盖内容 章 号 初 学 者 中 级 专 家
6.5 创建和重载构造函数 创建和使用构造函数 5
2.5 调用对象的方法 创建和使用方法 5
6.2 对方法和字段应用static关键字 创建静态方法和实例变量 5
6.3 创建重载方法 创建和使用方法 5
6.4 区分默认的和用户定义的构造函数 创建和使用构造函数 5
6.8 确定对象引用和基本数据类型值被传入改变其值的方法中时对它们的影响 通过引用和值传递对象 5
4.1 声明、实例化、初始化和使用一维数组 使用Java数组 6
4.2 声明、实例化、初始化和使用多维数组 使用Java数组 6
4.3 声明和使用ArrayList(新内容) 使用ArrayList对象及其方法 6
7.1 实现继承 实现并使用继承和类的类型 7
7.6 使用抽象类和接口 实现并使用继承和类的类型 7
6.6 应用访问修饰符 理解封装原则 7
2.3 读或写对象字段 类继承和封装的高级应用 7
6.7 对类应用封装原则 理解封装原则 7
7.2 开发演示使用多态的代码 理解多态 8
7.3 区分引用类型和对象类型 理解多态 8
7.4 确定何时类型转换是必要的 理解类型转换 8
8.3 描述Java中异常的用途 理解异常的基本原理和类型 9
8.1 区分检查异常、运行时异常和错误 理解异常的基本原理和类型 9
8.2 创建try-catch块并确定异常如何改变正常的程序流程 改变程序流程 9
8.4 调用抛出异常的方法 理解异常的本质 9
8.5 识别常见异常类和类别 识别常见异常 9
补充材料 理解类的组合与关联 10
补充材料 类组合与关联的实践 10