Java Tiger 认证
外观
一位 Wikibookian 认为此页面应该拆分为具有更窄子主题的较小页面。 您可以通过将此大页面拆分为较小的页面来提供帮助。请确保遵循命名策略。将书籍分成较小的部分可以提供更多重点,并允许每个部分都能做好一件事,这对每个人都有利。 |
本书的目的是帮助那些想要成为 Java 5.0(Tiger)版本认证 Java 程序员的人。官方考试名称为“Sun 认证 Java 2 平台标准版 5.0 程序员”(CX-310-055)。使用升级测试 CX-310-056 从旧认证升级的人员也可以使用本书。
我们将严格遵循 Sun 在此考试官方网站上列出的程序(请参阅参考文献)。
对于那些了解 Java 但不了解 5.0 版本的人,我们推荐这篇 Sun 文章:J2SE 5.0 概览。对于那些刚刚接触 Java 技术的人,请考虑在网络上搜索初学者的作品。
下面的 *考试目标* 来自 Sun CX-310-055(56) 考试页面,并将指导我们。
- 开发声明类(包括抽象类和所有形式的嵌套类)、接口和枚举的代码,并包含包和导入语句(包括静态导入)的适当使用。
- 开发声明、初始化和使用基本类型、数组、枚举和对象作为静态、实例和局部变量的代码。此外,为变量名称使用合法的标识符。
- 开发声明静态和非静态方法的代码,并在适当情况下使用符合 JavaBeans 命名标准的方法名。此外,开发声明和使用可变长度参数列表的代码。
- 给定一个代码示例,确定一个方法是否正确地覆盖或重载了另一个方法,并识别该方法的合法返回值(包括协变返回)。
- 给定一组类和超类,为一个或多个类开发构造函数。给定一个类声明,确定是否会创建默认构造函数,如果创建,则确定该构造函数的行为。给定一个嵌套或非嵌套类列表,编写代码来实例化该类。
- 开发实现 if 或 switch 语句的代码;并识别这些语句的合法参数类型。
- 开发实现所有形式的循环和迭代器的代码,包括使用 for、增强型 for 循环(for-each)、do、while、标签、break 和 continue;并解释循环执行期间和之后循环计数器变量所取的值。
- 开发使用异常和异常处理子句(try、catch、finally)的代码,并声明抛出异常的方法和覆盖方法。
- 识别将导致抛出以下任何一个的情况:ArrayIndexOutOfBoundsException、ClassCastException、IllegalArgumentException、IllegalStateException、NullPointerException、NumberFormatException、AssertionError、ExceptionInInitializerError、StackOverflowError 或 NoClassDefFoundError。了解其中哪些是由虚拟机抛出的,并识别在其中应该以编程方式抛出其他异常的情况。
- 开发使用基本类型包装类(如 Boolean、Character、Double、Integer 等)和/或自动装箱和拆箱的代码。讨论 String、StringBuilder 和 StringBuffer 类之间的差异。
- 给定一个涉及导航文件系统、从文件读取或写入文件的场景,使用以下来自 java.io 的类(有时组合使用)开发正确的解决方案:BufferedReader、BufferedWriter、File、FileReader、FileWriter 和 PrintWriter。
- 开发使用来自 java.io 的以下 API 对对象进行序列化和/或反序列化的代码:DataInputStream、DataOutputStream、FileInputStream、FileOutputStream、ObjectInputStream、ObjectOutputStream 和 Serializable。
- 使用 java.text 包中的标准 J2SE API 正确地格式化或解析特定区域设置的日期、数字和货币值;并且,给定一个场景,如果要使用默认区域设置或特定区域设置,则确定要使用的适当方法。描述 java.util.Locale 类的用途和用法。
- 编写使用 java.util 和 java.util.regex 包中的标准 J2SE API 格式化或解析字符串或流的代码。对于字符串,编写使用 Pattern 和 Matcher 类以及 String.split 方法的代码。识别并使用正则表达式模式进行匹配(限于:.(点)、*(星号)、+(加号)、?、\d、\s、\w、[]、())。*、+ 和?的使用将限于贪婪量词,括号运算符仅用作分组机制,不用于在匹配过程中捕获内容。对于流,使用 Formatter 和 Scanner 类以及 PrintWriter.format/printf 方法编写代码。识别并在格式字符串中使用格式化参数(限于:%b、%c、%d、%f、%s)。
- 编写代码以使用 java.lang.Thread 和 java.lang.Runnable 定义、实例化和启动新线程。
- 识别线程可以存在的状态,并识别线程从一个状态转换到另一个状态的方法。
- 开发在类中实现严格封装、松耦合和高内聚的代码,并描述其好处。
- 给定一个场景,开发演示多态性用法的代码。此外,确定何时需要强制转换,并识别与对象引用强制转换相关的编译器与运行时错误。
- 解释修饰符对继承的影响,涉及构造函数、实例或静态变量以及实例或静态方法。
- 给定一个场景,开发声明和/或调用覆盖或重载方法以及声明和/或调用超类、覆盖或重载构造函数的代码。
- 给定一个设计场景,确定应使用哪些集合类和/或接口来正确实现该设计,包括 Comparable 接口的使用。
- 编写使用集合 API 的泛型版本的代码,特别是 Set、List 和 Map 接口以及实现类。识别非泛型集合 API 的局限性以及如何重构代码以使用泛型版本。
- 开发在类/接口声明、实例变量、方法参数和返回类型中正确使用类型参数的代码;并编写泛型方法或使用通配符类型的代码,并了解这两种方法的异同。
- 使用 java.util 包中的功能编写代码,通过排序、执行二分查找或将列表转换为数组来操作列表。使用 java.util 包中的功能编写代码,通过排序、执行二分查找或将数组转换为列表来操作数组。使用 java.util.Comparator 和 java.lang.Comparable 接口影响列表和数组的排序。此外,识别基本类型包装类和 java.lang.String 的“自然排序”对排序的影响。
- 给定一个代码示例和一个场景,编写使用适当的访问修饰符、包声明和导入语句与(通过访问或继承)示例中的代码交互的代码。
- 给定一个部署在 JAR 文件内部和/或外部的类的完全限定名称,为该类构造适当的目录结构。给定一个代码示例和一个类路径,确定类路径是否允许代码成功编译。
这项工作的最初想法来自巴西东北部的CGJUG(Java用户组)。CGJUG的一个小组正在学习考试,并决定构建这个项目,这是学习过程的结果。
我们想感谢参与其中的CGJUG成员
并且我们感谢其他将自己视为合作者的人