Java认证:认证或不认证

专业认证始终是一个有争议的主题,有资格的人在争论收益与成本/时间之间的关系。 通过Oracle的Java认证,我认为有两个主要的受众可以从中受益:

  • 那些开始从事软件事业的人。 扎实的工作经验和可证明的代码将永远是潜在雇主的首要考虑因素。 但是,在没有这种情况的情况下,Java认证是证明相关技能基本水平的客观方法。 有了初级编程职位的机会,候选人的工作经历就很有限,因此获得认证可能是留在简历堆和进入面试主席之间的区别。 同样,如果您有可靠的工作经历,但正在申请一份侧重于项目中未使用过的API的工作,则认证可以帮助弥补简历中的空白。
  • 那些希望学习新技能或对其主题专业知识进行客观验证的人。 Oracle尽力确保其认证反映专业服务中所需的技能和知识。 如果您不熟悉Java版本或API,那么学习这些考试可以帮助您确定真正需要知道的主题的界限。 如果您已经具有该主题的经验,则可以使用这些考试来验证您确实知道了您认为的知识。

成为Oracle认证Java SE 8程序员

几年前,Oracle改进了其Java认证途径。 当时,他们引入了不同级别的认证。 在遵循Java程序员的道路时,您需要先完成“助理”认证(例如“专业”或“大师”级别的认证)。 此规则有一个例外-如果您已经完成了以前的Java认证,则它们确实具有可用的升级路径。

该认证需要进行一次考试:Java SE 8 Programmer I 1Z0-808。 要参加此考试,您首先要从Oracle University购买代金券。 购买之后,您现在就可以在托管的考试机构中注册参加考试。 该考试包含77个多项选择题,它们有助于您的最终成绩。 考试期间可能还会添加更多问题,但是这些问题是“未计分的”。 不幸的是,您没有被告知哪些问题被评分,哪些没有评分。 整个考试必须在150分钟内完成。

在考试期间,您将能够写下中心提供的材料的注释。 绝对没有其他笔记可以带入考试室,并且您必须在考试完成后退还他们提供的材料。 此时,您可能会急于想找到自己的分数,但考试中心将不会提供该信息。 相反,您需要等待分数发布到Oracle的CertView网站上。 如果您以65%或更高的分数完成考试,则说明您已通过并已获得Oracle认证助理Java SE 8程序员的身份。

有关详细信息并开始注册过程,请访问Oracle University 。

只要确保您正在注册Java SE 8 Programmer I 1Z0-808考试,因为此页面还列出了SE 5/6和SE 7的较早考试。

考试技巧

虽然认证规则禁止我分享特定的测试问题,但我可以为您提供一些一般性提示,以帮助提高您的分数。

阅读实际写的内容……而不是您期望的内容

通常听到的建议是,首先检查答案是否为“这无法编译”。 从理论上讲,如果这不是可用的选项之一,那么您不必担心试图通过偷偷摸摸的编译错误来欺骗您的问题。 当然,这是正确的,但是,我相信它使人们为懒惰的阅读做好了准备。 让我举一个例子。 以下代码的输出是什么?

public class Person {	private String fullName = "Jason Shapiro";public void Person() {fullName = "J. Shapiro";}public static void main(String[] args) {System.out.println( new Person().fullName );}
}

假设测试焦虑逐渐蔓延,您的第一个念头是:“嗯……没有规则说我无法在静态方法中访问实例变量吗? 我知道我通过发送消息来访问的人全名,但的主......”那么,你快速地检查可用的选项并注意列表‘没有编制’未列出里面。 您松了一口气,正确地认为这是合法的,然后Swift选择“ J. Shapiro”,因为构造函数将在fullName的显式初始化后执行。 不幸的是,这个答案是错误的。 如果您仔细看(并且我确定您中的某些人对此有所了解),请注意Person()不是构造函数。 它具有返回值; 因此,这是一种方法。 因此,实际上从未调用过该方法,答案是“ Jason Shapiro”。

练习阅读不同格式的代码。

人们普遍认为,您对Java的了解越多,这些考试就越容易。 尽管通常是这样,但是经验丰富的开发人员通常会习惯于特定的编码样式。 当呈现的样式不同时,可能会给读者带来挑战。 那么什么可以有所不同呢? 罪魁祸首是使用空格和花括号。 您至少应该确保了解何时需要括号以及何时需要括号的规则。 例如,您可能习惯了do ... while循环,如下所示:

do {System.out.println(i.next().fullName);
} while( i.hasNext() );

但是您也应该习惯于这样阅读:

do System.out.println(i.next().fullName); while( i.hasNext() );

同样,您可能熟悉多维数组,例如:

int[][][] studentIdsByLocation = new int[20][83][2];

…但是您知道以下语法也是合法的吗?

int[] studentIdsByLocation[][] = new int[20][83][2];

请记住,所有得分问题都值得一分。 即使是真正的困难者!

您有150分钟的时间回答所有问题,因此,如果您发现单个问题花费的时间太长,请将其标记为最后返回。 最好不要在一个棘手的问题上遗漏一分,而不是在您知道答案的问题上浪费时间!

按照您的订单!

Java中有许多排序和优先级规则。 经过多年的编码,很容易忘记除最常见的示例以外的所有示例。 提醒自己的第一个是运算符优先级的顺序。 创建具有多个运算符的随机表达式,并进行自我测试以查看是否可以确定正确的结果。 您可能还记得乘法是在加法之前发生的,但是所有这些如何与后加和预加运算符配合? 例如,运行此代码后,x和y的值是什么:

int x = 3;
int y = 5;
y = y++;
y = y++;
y = y++;
x = 4 * ++y - 3 + x * y;
x = x++;

如果您说x = 39和y = 6以外的任何其他内容,您将需要在此主题上花费更多时间。 在此特定示例中,行y = y ++; 和x = x ++; 真的没有任何作用。 两者都使用后增量运算符,因此将返回当前值并将其分配给变量,从而覆盖增量。

另一个熟悉的相关主题是类加载和对象实例化的顺序。 您应该熟悉何时调用静态初始化块(并且在类的整个生命中仅被调用一次),以及它们如何与实例初始化块,内联变量初始化和构造函数一起使用。 创建一个三级对象层次结构链(例如Person-> Employee-> Consultant),并将所有这些初始化结构与print语句一起添加。 然后实例化最具体的类型(顾问)–两次。 尝试另一个示例,在该示例中,您仅创建了Consultant,Employee和Person变量(将其保留为空)。 哪些打印语句被称为? 记住类加载和实例化的过程。

最后,在调用带有原始参数的重载方法时,请熟悉选择的顺序。

如果我们有以下方法:

public void computeIt(Long val) { }
public void computeIt(int... val) { }
public void computeIt(double val) { }

…并进行以下方法调用:

obj.computeIt(5);

您应该知道将调用声明double参数的方法。 如果没有,请学习以下选择顺序:

  1. 与方法参数的精确原始匹配具有最高的方法选择优先级。
  2. 如果确切的原始类型不可用于byte,short,char,int或long:
    1. 下一个较大的整数基元可用(字节,短整数,整数和长整数)。
    2. 可用的最小大小的十进制基元(浮点型,双精度型)。
  3. …以及浮动:
    1. 双重原语。
  4. 确切的包装类(在本例中为Integer)。
  5. 精确原始类型的变量。
  6. 如果确切原语的varargs对于byte,short,char,int或long不可用:
    1. 下一个较大的整数可变参数可用(字节,短整数,整数和长整数)。
    2. 下一个最小的十进制可变参数可用(浮点数,双精度)。
  7. …以及浮动:
    1. 双变量。
  8. 最后:精确包装器类的varargs。

对于你们中的许多人来说,这可能比您记得的要复杂得多。 花一些时间用原语,varargs和包装器类定义和调用重载方法,以查看实际使用不同参数调用的内容。

不变性和捕获返回值

在考试中您应该知道的所有课程中-所有这些都在这里列出。

您必须知道哪些是“不变的”。 此考试中包括的字符串和java.time包中的类都是不可变的。 这意味着,当您在它们上调用似乎修改其内容的方法时,必须捕获其返回值。 例如,以下代码可能会引发一个更大的问题。

String fullName = "Jason Shapiro";
fullName.toUpperCase();
System.out.println(fullName);

如果阅读速度太快,您可能会忘记字符串是不可变的,因此,错误地认为fullName现在是“ JASON SHAPIRO”。 如果代码编写如下,则“ JASON SHAPIRO”将是正确的输出:

String fullName = "Jason Shapiro";
fullName = fullName.toUpperCase();
System.out.println(fullName);

这可能是您已经熟悉的一条规则,但是测试焦虑与时间限制相结合,很容易由于不可变性而错过不正确的代码。 因此,在参加考试之前,请提醒自己哪些对象是不可变的,并始终确保注意是否已捕获返回值。

有关更多提示和要学习联想考试涵盖的主题,请查看我在Udemy的在线课程:

学习Java SE 8并准备OCA Java程序员考试

我将从这门课程中学到什么?

  • 读写Java基本命令行程序
  • 知道如何使用集成开发环境(Eclipse)来开发和调试程序
  • 为代码生成基于HTML的文档(Javadoc)
  • 对考试涵盖的主题有深入的了解,成为Oracle认证助理Java SE 8程序员(Java SE 8程序员I 1Z0-808)

掌握Java的基础和Oracle认证合作伙伴Java SE 8程序员考试(1Z0-808)的主题!

翻译自: https://www.javacodegeeks.com/2016/06/java-certification-cert-not-cert.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下杀死进程全权讲解

linux下杀死进程全权讲解 2009-10-27 08:57 佚名 linux 我要评论(0) 字号:T | T本文将详细讲解linux杀死进程的多种命令,包含他们的作用,kill作用:根据进程号杀死进程; killall作用:通过程序的名字&#xf…

python学习笔记(10)--组合数据类型(序列类型)

序列是具有先后关系的一组数据,是一维元素向量,元素类型可以不同,类似数学元素序列,元素间由序号引导,通过下标访问序列的特定元素。序列类型是一个基类类型,字符串类型,元祖类型,列…

Java Process中waitFor()的问题

Java Process中waitFor()的问题 http://yearsaaaa123789.iteye.com/blog/1404865在编写Java程序时,有时候我们需要调用其他的诸如exe,shell这样的程序或脚本。在Java中提供了两种方法来启动其他程序:(1) 使用Runtime的exec()方法(2) 使用ProcessBuilder…

java jsr_Java EE 7中包含哪些JSR?

java jsr我开始填写所有应该包含在Java EE 7中的Java规范请求的表。 由于仍在决定平台版本,因此某些细节很难确定。 完整的Java EE 7 EJB产品具有以下标准组件和API: 名称 版 描述 JSR 网页 个人资料 批处理 1.0 批量处理 352 Bean验证 1…

※※Java调用Runtime.exec()要注意的问题

※※Java调用Runtime.exec()要注意的问题标签:execJavaRuntime字体:【默认中大】 http://it.superkoo.com/#/topic/479/ 最近开发一个项目需要在JAVA中调用VC写的一个EXE程序,首先想到的方法肯定是用Runtime.exec(),但一写就发现&…

应用程序模块和实体缓存

任何具有ADF业务组件基础知识的ADF开发人员都应该熟悉下图: 它代表运行时ADF业务组件的核心构建块。 有一个包含视图对象实例的根应用程序模块实例。 视图对象实例可能由存储在实体集合或换句话说就是实体缓存中的实体对象备份。 根应用程序模块可能还包含嵌套的应…

kubernetes-dashboard(1.8.3)部署与踩坑

Kubernetes Dashboard 是一个管理Kubernetes集群的全功能Web界面,旨在以UI的方式完全替代命令行工具(kubectl 等)。 目录 部署创建用户集成Heapster访问 kubectl proxyNodePortAPI ServerIngress部署 Dashboard需要用到k8s.gcr.io/kubernetes…

MFC中打开文件对话框:CFileDlg

MFC中打开文件对话框:CFileDlg CFileDialog 文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt NULL, LPCTSTR lpszFileName NULL, DWORD d…

TCL座机日期时间调整

设置日期时间:1.按“挂断/设置”键,显示“SET 12345678”2.按1(一般情况下1为设置日期),显示“1-date 2-cl”,3.按1显示 “d2012 01-01”(设置年月日,也就是直接按数字键设定年月日&…

MFC多线程编程

MFC多线程编程 (2007-11-20 17:56:36) 分类: vc 基于MFC的多线程编程 MFC是微软的VC开发集成环境中提供给程序员的基础函数库,它用类库的方式将Win32 API进行封装,以类的方式提供给开发者。由于其快速、简捷、功能强大等特点深受广大开发者喜…

oracle线程阻塞_Oracle Service Bus –线程阻塞案例研究

oracle线程阻塞本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程。 本文也是您提高线程转储分析技能的绝佳机会,我强烈建议您学习并正确理解以下分析方法。 它还将展示正确数据收集的重要性&…

前端开发 —— BOM

0. BOM vs. DOM BOM:Browser Object Model,浏览器对象模型,是在 web 中使用 JavaScript 的绝对核心; BOM:提供了独立于内容而与浏览器窗口进行交互的对象。BOM 提供了很多对象(window、location、navigator…

LPCTSTR和CString的关系

LPCTSTR和CString的关系 2010-12-06 08:56:33 标签:LPCTSTR CString 休闲 职场 类型理解LPCTSTR类型:L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32位操作系统中, long指针和near指针及…

Activiti中的安全脚本如何工作

最近的Activiti 5.21.0版本的突出特点之一是“安全脚本”。 Activiti用户指南中详细介绍了启用和使用此功能的方法 。 在这篇文章中,我将向您展示我们如何实现其最终实现以及它在幕后所做的事情。 当然,由于这是我通常的签名风格,因此我们还将…

JS 代码优化

1、JS中函数单独写在一个声明函数中,执行这个使用调用函数。这样js代码结构会清爽一点。 2、js函数注释规范 /*** brief 对报文某个域组包,把逗号后面的数据组成一个字符串给ddname用* param {string} p1 参数1的说明* param {string} p2 参数2的说明&am…

c++学习之const成员变量与成员函数

c学习之const成员变量与成员函数 常类型是指用类型修饰符const说明的类型,常类型的变量或者对象的值是不能被更新的。因此,定义或说明常类型时必须初始化。 如果在一个类声明常数据成员,那么任何函数中都不能对该成员赋值。构造函数对该成员…

使用准现网的数据,使用本地的样式脚本,本地调试准现网页面(PC适用)

原理: 本地逻辑,重新渲染 步骤: 1.安装插件:Tampermonkey 度盘:https://pan.baidu.com/s/1bpBVVT9 2.设置: 点击插件-->仪表盘 添加脚本 将此文本文档中的脚本复制到脚本编辑框处,并CtrlS保存…

FDATOOL设计滤波器

FDATOOL设计滤波器 分类: 数字信号处理 2006-04-20 11:251. 在Matlab中键入fdatool运行Filter Design and Analysis Tool。具体使用请参见Matlab Help中的Signal Processing Toolbox->FDATool。 2. 在fdatool工具中应该注意的几个问题:(a)Fstop&#…

大例外背后的真相

异常可能是最被滥用的Java语言功能。 这就是为什么 让我们打破一些神话。 没有牙仙子。 圣诞老人不是真实的。 TODO评论。 finalfinalversion-final.pdf。 无皂肥皂。 而且…例外实际上是例外。 后者可能需要更多说服力,但我们可以帮助您。 在这篇文章中&#xff…

MATLAB里面的filter和filtfilt的C语言源代码

MATLAB里面的filter和filtfilt的C语言源代码 嗯,算法非常简单,就是网上搜不到C代码实现。filter是个很万能的数字滤波器函数,只要有滤波器的差分方程系数,IIR呀FIR呀都能通过它实现。在MATLAB里面,filter最常用的格式是…