JavaCC基本使用介绍

JavaCC基本使用介绍
JavaCC基本使用介绍

JavaCC基本使用介绍

目录

一、引言 (2)

1.1 JavaCC简介: (2)

1.2 词法分析器概念 (2)

1.3 语法分析器概念 (3)

1.4 JavaCC采取的语法分析方法 (3)

二、示例使用流程 (6)

2.1加法解析器 (6)

2.2 扩展的加法解析器 (10)

2.3 计算器解析器 (12)

2015年1月2日星期五

一、引言

1.1 JavaCC简介:

JavaCC(Java Compiler Compiler)是一个用JA V A开发的能生成词法和语法分析器的工具。这个工具可以读取上下文无关且有着特殊意义语法的文本输入并把它转换成可以识别该语法的JA V A程序。JavaCC可以在JVM 1.2或更高的版本上使用,它由纯Java代码开发,可以在多种平台上运行。JavaCC还提供JJTree工具来帮助我们建立语法树,JJDoc工具为我们的源文件生成BNF范式(巴科斯-诺尔范式)文档(Html)。

1.2 词法分析器概念

词法分析器又称扫描器。词法分析是指将我们编写的文本输入流解析为一个个的记号(Token),分析得到的记号以供后续语法分析使用。词法分析器的工作是低级别的分析,

就是将一系列字符分成一个个的Token,并标记Token的分类。

例如:

输入:

int main() {

return 0;

}

输出:

“int”, “ ”, “main”, “(”,“)”, “ ”, “{”, “\n”, “\t”, “return”, “ ”, “0”, “;”, “\n”, “}”

工作流程如图1所示:

图1:词法分析器工作流程

1.3 语法分析器概念

语法分析(Syntacticanalysis or Parsing)是根据某种给定的形式文法对由单词序列构成的输入文本进行分析并确定其语法结构的一种过程。语法分析是编译过程的一个逻辑阶段。简单来说:语法分析的任务就是在词法分析的基础上将单词序列组合成各类语法短语,判断输入在结构上是否正确。

工作流程如图2所示:

图2:语法分析器工作流程

1.4 JavaCC采取的语法分析方法

JavaCC采用的是自顶向下的分析方法,而且没有回溯功能,因此如何解决冲突的问题,是程序员的责任。

关于语法分析方法的分类如图3所示:

图3:语法分析方法简单分类

什么是自顶向下的分析方法?什么是自底向上的分析方法?请看图4,图5示例。

自顶向下的分析法会遇到的问题:

(1)存在形如A→αβ1|αβ2的产生式,即有多个候选式的前缀相同(称为公共左因子,或左因子),则可能造成虚假匹配,使得在分析过程中可能需要进行大量回溯。

(2)存在左递归(文法中有形如A→Aα的产生式),分析过程又使用最左推导,就会使分析过程陷入死循环。

左递归的类型:

直接左递归:A→A…

间接左递归:A→Bβ,B→Aα 即A→+A…

潜在左递归:A→αAβ,且α→*ε

针对上述问题的一些解决方法:

(1)关于公因子的问题,可以改写算法(提取公因子),也可以通过展望(look ahead)更多符号的方法来解决。例将形如:A→αβ1|αβ2|…|αβn|γ1|γ2|…|γm,改写为:A→αA′|γ1|γ2|…|γm,A′→β1|β2|…|βn。

(2)关于左递归的问题,一般采用经典的修改文法的方法解决。

消除直接左递归:

假定关于A的全部产生式是:A→Aα1|Aα2|…|Aαm|β1|β2|…|βn

消除直接左递归后改写为:

A→β1 A′|β2 A′|…|βn A′

A′→α1 A′|α2 A′|…|αm A′|ε

消除间接左递归:

去除那些从开始符号出发永远无法到达的非终结符号的产生规则,为非终结符号编号,

再采用代入法将间接左递归变为直接左递归,从而再消除直接左递归。

当在JavaCC中碰到冲突时,可以采用下面的方法之一解决问题:

(1)修改语法,使之成为LL(1)语法。

(2)只要将LOOKAHEAD=k写到Options块中即可。

JavaCC产生的分析器就可以分析LL(K)语法生成的语言。采用第一种方法的好处是效率非常高,易于维护;采用第二种方法的好处是语法更加直观,但是却不易维护。有时候采用第一种方法是无法解决冲突的,第二种方法是唯一的选择。

什么是LL(1)语法?

第一个L代表从左向右扫描输入符号串,第二个L代表产生最左推导,1代表在分析过程中执行每一步推导都要向前查看一个输入符号。LL(1)文法既不是二义性的,也不含左递归,对LL(1)文法的所有句子均可进行确定的自顶向下语法分析。

LL(1)语法的具体定义(不必详究):

对文法G的句子进行确定的自顶向下语法分析的充分必要条件是,G的任意两个具有相同左部的产生式A—>α|β满足下列条件:

(1)如果α、β均不能推导出ε,则FIRST(α) ∩FIRST(β) = Φ。

(2)α和β至多有一个能推导出ε。

(3)如果β*═> ε,则FIRST(α) ∩FOLLOW(A) = Φ。

将满足上述条件的文法称为LL(1)文法。

基于LL(1)文法的分析过程(不必详究):

给定LL(1)文法,对输入串进行有效的无回溯的自上而下的分析过程是:假设要用非终结符A进行匹配,面临的输入符号为a,A的候选式为A→α1|α2|…|αn

(1)若a∈First(αi),则指派αi去执行匹配任务;

(2)若a不属于任何一个候选式的终结首符集,则:

①若ε属于某个First(αi),且a∈Follow(A),则让A与ε自动匹配;

②否则,a的出现是一种语法错误。

二、示例使用流程

JavaCC的输入文档是一个词法和语法的规范文件,其中也包括一些动作的描述,它的后缀是jj或者jjt。一个jj文档包括以下部分:

(1)Options{}部分,这个部分对产生的语法分析器的特性进行说明,例如向前看的token 的个数(用来解除冲突)。这部分可以省略的,因为每一个选项都有默认值,当我们没有对某个选项进行说明时,它就采用默认值

(2)分析器类的声明,这个部分指定了分析器类的名字,以及其他类中成员的声明,这个部分是必需有的。

(3)词法分析器,主要定义了SKIP和TOKEN。

(4)语法分析器,语法中的每一个非终结符都对应一个函数,利用函数调用来表示非终结符之间的结构关系。

2.1加法解析器

首先建立一个adder.jj文件,然后实现如下四个部分。

(1)Options{}部分:

(2)分析器类的声明:

简单释意:

第一二行表示空格和回车换行是不会传给语法分析器的。

第三行声明了一个Token,名称为PLUS,符号为“+”。

第四行声明了一个Token,名称为NUMBER,符号位一个或多个0-9的数的组合。

如果词法分析器分析的表达式如下:

“123 + 456\n”,则分析为NUMBER, PLUS, NUMBER,EOF

“123 - 456\n”,则报TokenMgrError,因为“-”不是一个有效的Token.

“123 ++ 456\n”,则分析为NUMBER, PLUS, PLUS, NUMBER, EOF,词法分析正确,后面的语法分析将会错误。

其他:

JavaCC中的语法表示吸收了UNIX中正规文法的一些记号:

[]:其中的内容是可选的

+:前面的内容出现一次或多次

*: 前面的内容出现0次或多次

?:前面的内容出现0次或一次

|:前面或后面

():改变运算的优先级,把其中的内容作为一个整体

(5)编译adder.jj

adder.jj文件具体内容如图6所示:

图6:adder.jj文件内容

编译结果如图7所示:

图7:adder.jj编译结果

SimpleCharStream.java:用于将一系列字符串传入词法分析器。

Token.java:代表词法分析后的一个个Token。Token对象有一个整型域kind,来表示此Token 的类型(PLUS,NUMBER, EOF),有一个String类型的域image,来表示此Token的值。AdderConstants.java:一些常量,如PLUS, NUMBER,EOF等。AdderTokenManager.java:词法分析器。

Adder.java:语法分析器。其中的main函数是完全从adder.jj中拷贝的,而start函数是利用javacc由adder.jj描述的规则生成的。

TokenMgrError.java:用于在词法分析错误的时候抛出

ParseException.java:用于在语法分析错误的时候抛出。

运行结果如图8(a-c)所示:

图8(a):adder.java运行结果—正常情况

图8(b):adder.java运行结果—词法错误

图8(c):adder.java运行结果—语法错误

2.2 扩展的加法解析器

在上面的例子中的start函数中,我们仅仅通过语法分析器来判断输入的语句是否正确。我们可以扩展BNF表达式,加入Java代码,使得经过语法分析后,得到我们想要的结果或者对象。我们将start函数改写为:

注意:t.kind表示单词的类别,t.image表示单词值

运行结果如图9所示:

图9:扩展的加法解析器1运行结果

从上面的例子,我们发现,把一个NUMBER取出,并解析为double型这一步是可以共用的,所以可以抽象为一个函数。

运行结果与图10所示:

图10:扩展的加法解析器2运行结果

2.3 计算器解析器

首先建立一个calculator.jj文件,具体内容如下:

运行结果如图11所示:

图11:计算器示例运行图

软件检验测试的各种方法介绍

2.集成测试

集成测试,英文是Integration Testing。 集成测试是指一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作并没有冲突。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。这种类型的测试尤其与客户服务器和分布式系统有关。一般集成测试以前,单元测试需要完成。 集成测试是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。 集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元,并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别 3.冒烟测试 冒烟测试,英文是Smoke testing。 冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。

冒烟测试的对象是新编译的每一个需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。 4.系统测试 系统测试,英文是System Testing。 系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。 系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。 5.回归测试 回归测试,英文是Regression testing。 回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。 根据修复好了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现

关于测试工作流程及工具使用

关于测试工作流程及工 具使用 标准化管理部编码-[99968T-6889628-J68568-1689N]

1前言 本文档仅作用于公司内部人员使用参考,主要概括的是开发组与测试组的工作流程及工作衔接内容,该文档由测试组人员内部制定,若有考虑不周之处请给出建议!编写此流程的主要目的是规范测试,提高开发组与测试组的工作效率,尽可能早地找到BUG,并保证得以修复。 2测试流程简介 2.1测试工作总体流程 2.1.1测试计划用例设计 2.1.1.1执行环境 1、项目立项后,项目组讨论项目实施过程后执行此流程; 2、前提是须有《项目技术规范说明书》,若客户未提供可从其它途径获取客户需求 (如以前项目文档,样机获取等); 3、与开发组的程序设计阶段同步,即开发设计项目实施时测试组同步进行测试设计, 此过程为测试执行做准备工作; 4、立项项目经理把技术规范说明书共享给开发、测试组开发组人员解析说明 书并设计代码、测试组根据说明书作出测试计划、测试用例此阶段完成(此过程中开发组和测试组进行功能规格沟通)。 2.1.1.2执行细则 测试计划 测试负责人根据项目的需求,制定测试计划,明确目标与测试任务以及测试人员的安排。测试计划分复杂文档型和简单实用型,综合我司目前情况,比较适用后者即简单实用型,引用Microsoft Project来计划分配项目任务,把项目细分为各个阶段、阶段再

细分为各个任务,任务精确到具体时间、负责人,测试计划的主要要素包括:项目名称、任务名称、工期、开始时间、完成时间、资源名称等,如下图。 测试用例 依据已引用的用例模板,进行用例设计,挖掘用户潜在需求并结合到用例设计,与需求接口人沟通获取更直观的用户要求; 若项目时间充足,测试用例可提供给开发人员,以便开发人员结合代码设计思路给出建议,使测试用例达到更高的可执行效果; 测试用例由测试组相应测试人员设计。 2.1.2系统测试 备注:测试阶段分为单元测试、集成测试、系统测试、验收测试,单元测试由开发人员根据代码进行测试,集成测试即分模块单独测试(此阶段跳过),系统测试即集成后的版本测试(我司主要以此阶段作为测试的重心),验收测试即模拟用户进行使用测试(发布前的版本)。 结合公司环境,目前测试执行(测试执行区别于测试设计,测试设计主要是方法、过程的设计,测试执行是执行已设计好的方法及过程)包括系统测试、回归测试、验收测试三大步骤。 2.1.2.1执行环境 1、执行前提是“测试计划用例设计”阶段完成; 2、此阶段开发组须集成可测版本提供给测试组执行测试,测试组先进行冒烟测试,冒烟 测试不通过则须返回开发组再集成可测版本;(在此说明,冒烟测试即机顶盒常用功能都可正常执行操作,可理解为机顶盒的基本功能测试) 3、完成测试文档前期准备工作; 2.1.2.2执行细则 测试人员针对独立的测试任务进行方案设计(可自定义)测试人员执行测试用例实时提交发现的BUG至TestDirector、开发人员实时访问刷新BUG页面跟踪并修复BUG开发人员提供新版本测试人员回归测试检测已修复BUG、提交新BUG重复蓝色标记步骤直至所有BUG通过测试人员编写测试报告。

常用通讯测试工具使用

常用通讯测试工具 鉴于很多MCGS用户和技术人员对通讯测试工具并不很熟悉,本文档将针对实际的测试情况,对串口、以太网通讯调试过程中所涉及到的常用的测试软件进行相关的讲解。 1. 串口测试工具: 串口调试工具:用来模拟上下位机收发数据的串口工具,占用串口资源。如:串口调试助手,串口精灵,Comm等。 串口监听工具:用来监听上下位机串口相关操作,并截获收发数据的串口工具。不占用串口资源。如:PortMon,ComSky等。 串口模拟工具:用来模拟物理串口的操作,其模拟生成的串口为成对出现,并可被大多数串口调试和监听软件正常识别,是串口测试的绝好工具。如:Visual Serial Port等。 下面将分别介绍串口调试助手、Comm、PortMon和Visual Serial Port的使用。

1.1. 串口调试助手: 为最常用的串口收发测试工具,其各区域说明及操作过程如下: 串口状态 打开/关闭串口 十六进制/ASCII 切换 串口数据 接收区 串口参数 设置区 串口数据 发送区 串口收发计数区 发送数据功能区 保存数据功能区 操作流程如下: ? 设置串口参数(之前先关闭串口)。 ? 设置接收字符类型(十六进制/ASCII 码) ? 设置保存数据的目录路径。 ? 打开串口。 ? 输入发送数据(类型应与接收相同)。 ? 手动或自动发送数据。 ? 点击“保存显示数据”保存接收数据区数据到文件RecXX.txt。 ? 关闭串口。 注:如果没有相应串口或串口被占用时,软件会弹出“没有发现此串口”的提示。

1.2. PortMon 串口监听工具: 用来监听上下位机串口相关操作,并截获收发数据的串口工具。不占用串口资源, 但在进行监听前,要保证相应串口不被占用,否则无法正常监听数据。 连接状态 菜单栏 工具栏 截获数据显示区 PortMon 设置及使用: 1). 确保要监听的串口未被占用。 如果串口被占用,请关闭相应串口的应用程序。比如:要监视MCGS 软件与串口1设备通讯,应该先关闭MCGS 软件。 说明:PortMon 虽不占用串口资源,但在使用前必须确保要监听的串口未被占用,否则无法进行监视。 2). 运行PortMon,并进行相应设置。 ? 连接设置: 在菜单栏选择“计算机(M)”->“连接本地(L)”。如果连接成功,则连接状态显示为“PortMon 于\\计算机名(本地)”。如下图:

编译原理实验二

实验二语法分析 一、实验目的: 设计MiniC的上下文无关文法,利用JavaCC生成调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。 二、语法分析器: 按照MiniC语言的语法规则检查词法分析输出的记号流是否符合这些规则,并根据这些规则所体现出的语言中的各种语法结构的层次性。把规则写入到JavaCC的.jjt文件中,可以生成树状的层次结构。 三、JavaCC: 在JavaCC的文法规范文件中,不仅可以描述语言的语法规范,而且可以描述词法规范,本次实习中,利用JavaCC以MiniC语言构造一个不含语义分析的编译器前端,包括词法分析、语法分析,并要考虑语法分析中的错误恢复问题。通过使用JavaCC, 可以体会LL(k)文法的编写特点,掌握编写JavaCC文法规范文件的方法。 内容:利用JavaCC生成一个MiniC的语法分析器; 要求: 1.用流的形式读入要分析的C语言程序,或者通过命令行输入源程序。 2.具有错误检查的能力,如果有能力可以输出错误所在的行号,并简单提示 3.如果输入的源程序符合MiniC的语法规范,输出该程序的层次结构的语法树本次实习仅完成以下语法范畴的语法分析: 1. 写出一个源程序中仅包含if…else, else语句的语法分析。要求能分析其自身 嵌套. 其他语句可简化处理 2. 写出一个源程序中仅包含for语句的语法分析。要求能分析其自身嵌套, 其他语句可简化处理 3. 写出一个源程序中仅包含while语句的语法分析。要求能分析其自身嵌套。 其他语句可简化处理 4. 写出一个源程序中包含上面的12或者13或者23或者123语句的语法分析。 要求能分析除其自身嵌套外,还包括相互嵌套。其他语句可简化处理 具体实施步骤如下: 1.把MiniC转换为文法如下 <程序〉→ main()〈语句块〉 〈语句块〉→{〈语句串〉}

JavaCC基本使用介绍

JavaCC基本使用介绍 目录 一、引言 (2) 1.1 JavaCC简介: (2) 1.2 词法分析器概念 (2) 1.3 语法分析器概念 (3) 1.4 JavaCC采取的语法分析方法 (3) 二、示例使用流程 (6) 2.1加法解析器 (6) 2.2 扩展的加法解析器 (10) 2.3 计算器解析器 (12) 2015年1月2日星期五

一、引言 1.1 JavaCC简介: JavaCC(Java Compiler Compiler)是一个用JA V A开发的能生成词法和语法分析器的工具。这个工具可以读取上下文无关且有着特殊意义语法的文本输入并把它转换成可以识别该语法的JA V A程序。JavaCC可以在JVM 1.2或更高的版本上使用,它由纯Java代码开发,可以在多种平台上运行。JavaCC还提供JJTree工具来帮助我们建立语法树,JJDoc工具为我们的源文件生成BNF范式(巴科斯-诺尔范式)文档(Html)。 1.2 词法分析器概念 词法分析器又称扫描器。词法分析是指将我们编写的文本输入流解析为一个个的记号(Token),分析得到的记号以供后续语法分析使用。词法分析器的工作是低级别的分析, 就是将一系列字符分成一个个的Token,并标记Token的分类。 例如: 输入: int main() { return 0; } 输出: “int”, “ ”, “main”, “(”,“)”, “ ”, “{”, “\n”, “\t”, “return”, “ ”, “0”, “;”, “\n”, “}” 工作流程如图1所示: 图1:词法分析器工作流程

实验二语法分析

实验二、语法分析 一、实验目的: 设计MiniC的上下文无关文法,利用JavaCC生成调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。 二、语法分析器: 按照MiniC语言的语法规则检查词法分析输出的记号流是否符合这些规则,并根据这些规则所体现出的语言中的各种语法结构的层次性。把规则写入到JavaCC的.jjt文件中,可以生成树状的层次结构。 三、JavaCC: 在JavaCC的文法规范文件中,不仅可以描述语言的语法规范,而且可以描述词法规范,本次实习中,利用JavaCC以MiniC语言构造一个不含语义分析的编译器前端,包括词法分析、语法分析,并要考虑语法分析中的错误恢复问题。通过使用JavaCC, 可以体会LL(k)文法的编写特点,掌握编写JavaCC文法规范文件的方法。 内容:利用JavaCC生成一个MiniC的语法分析器; 要求: 1.用流的形式读入要分析的C语言程序,或者通过命令行输入源程序。 2.具有错误检查的能力,如果有能力可以输出错误所在的行号,并简单提示 3.如果输入的源程序符合MiniC的语法规范,输出该程序的层次结构的语法树 具体实施步骤如下: 1.把MiniC转换为文法如下 Procedure()→void main() {WhileStatement()} WhileStatement()→while(Condition()){(WhileStatement()|ass ign())} assign()→= ; expression()→term() (( + | - ) term()) term()→unary() (( * | / ) unary()) unary()→| | ( expression()) Condition()→expression()( < expression() | > expression() | >= expression() | <= expression() )

lucense详解

另外,如果是在选择全文引擎,现在也许是试试Sphinx的时候了:相比Lucene速度更快,有中文分词的支持,而且内置了对简单的分布式检索的支持; 基于Java的全文索引/检索引擎——Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。 Lucene的作者:Lucene的贡献者Doug Cutting是一位资深全文索引/检索专家,曾经是 V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些INTERNET底层架构的研究。他贡献出的Lucene的目标是为各种中小型应用程序加入全文检索功能。 Lucene的发展历程:早先发布在作者自己的https://www.360docs.net/doc/275251399.html,,后来发布在SourceForge,2001年年底成为APACHE基金会jakarta的一个子项目: https://www.360docs.net/doc/275251399.html,/lucene/ 已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有: 对于中文用户来说,最关心的问题是其是否支持中文的全文检索。但通过后面对于Lucene 的结构的介绍,你会了解到由于Lucene良好架构设计,对中文的支持只需对其语言词法分析接口进行扩展就能实现对中文检索的支持。

全文检索≠ like "%keyword%" 通常比较厚的书籍后面常常附关键词索引表(比如:北京:12, 34页,上海:3,77页……),它能够帮助读者比较快地找到相关内容的页码。而数据库索引能够大大提高查询的速度原理也是一样,想像一下通过书后面的索引查找的速度要比一页一页地翻内容高多少倍……而索引之所以效率高,另外一个原因是它是排好序的。对于检索系统来说核心是一个排序问题。 由于数据库索引不是为全文索引设计的,因此,使用like "%keyword%"时,数据库索引是不起作用的,在使用like查询时,搜索过程又变成类似于一页页翻书的遍历过程了,所以对于含有模糊查询的数据库服务来说,LIKE对性能的危害是极大的。如果是需要对多个关键词进行模糊匹配:like"%keyword1%" and like "%keyword2%" ...其效率也就可想而知了。 所以建立一个高效检索系统的关键是建立一个类似于科技索引一样的反向索引机制,将数据源(比如多篇文章)排序顺序存储的同时,有另外一个排好序的关键词列表,用于存储关键词==>文章映射关系,利用这样的映射关系索引:[关键词==>出现关键词的文章编号,出现次数(甚至包括位置:起始偏移量,结束偏移量),出现频率],检索过程就是把模糊查询变成多个可以利用索引的精确查询的逻辑组合的过程。从而大大提高了多关键词查询的效率,所以,全文检索问题归结到最后是一个排序问题。

自动化测试工具介绍

主流测试工具介绍 选自:https://www.360docs.net/doc/275251399.html, WinRunner:强大的企业级自动化测试工具 Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。 企业级应用可能包括Web应用系统,ERP系统,CRM系统等等。这些系统在发布之前,升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不同环境的应用系统,是每个公司都会面临的问题。 如果时间或资源有限,这个问题会更加棘手。人工测试的工作量太大,还要额外的时间来培训新的测试人员等等。为了确保那些复杂的企业级应用在不同环境下都能正常可靠地运行,你需要一个能简单操作的测试工具来自动完成应用程序的功能性测试。 轻松创建测试 用WinRuuner创建一个测试,只需点击鼠标和键盘,完成一个标准的业务操作流程,WinRunner自动记录你的操作并生成所需的脚本代码。这样,即使计算机技术知识有限的业务用户轻松创建完整的测试。你还可以直接修改测试脚本以满足各种复杂测试的需求。WinRunner提供这两种测试创建方式,满足测试团队中业务用户和专业技术人员的不同需求。 插入检查点 在记录一个测试的过程中,可以插入检查点,检查在某个时刻/状态下,应用程序是否运行正常。在插入检查点后,WinRunner会收集一套数据指标,在测试运行时对其一一验证。WinRunner提供几种不同类型的检查点,包括文本的、GUI、位图和数据库。例如,用一个位图检查点,你可以检查公司的图标是否出现于指定位置。 检验数据

Java复习题-(含答案)上课讲义

J a v a复习题-(含答案)

一、单选题 1、JAVA是1995年由( A )公司发布的 A.SUN B.Microsoft C.borland D.Fox Software 2、在Java中,负责对字节代码解释执行的是 B A. 应用服务器 B. 虚拟机 C. 垃圾回收器 D. 编译器 3、设有定义 int i = 6 ;,则执行以下语句后,i 的值为 ( C )。 i += i - 1; A.10 B. 121 C. 11 D. 100 4、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .h D. .c 5、定义一个类,必须使用的关键字是( B ) A. public B. class C. static D. interface 6、JAVA中不属于基本数据类型的是 ( C )。 A.String B.int

C.char D.boolean 7、 0.6332的数据类型是(B) A. float B. double C. Float D. Double 8、关于类和对象的叙述正确的是:( D ) A.类是对象的实例化 B.类的静态属性和全局变量的概念完全一样,只是表达形式不同 C.类的成员至少有一个属性和一个方法 D.Java的类分为两大部分:系统定义的类和用户自定义的类 9、void 的含义:( C ) A.方法体为空 B.定义的方法没有形参 C.定义的方法没有返回值 D.方法的返回值不能参加算术运算 10、设 x = 2 , y = 4 , z = 5,则表达式 y*=z--/++x 的值是( C ) A. 3 B. 3. 5 C. 4 D. 5 11、访问权限最小的控制符是( D )。 A. public B. protected C. default D. private 12、编译Java程序的命令是( B )

软件自动化测试工具介绍--所有

软件自动化测试工具介绍 一、功能测试工具 1、QTP测试工具 全名 HP QUiCkTeSt ProfeSSional SoftWare ,最新的版本为HP QUiCkTeSt ProfeSSional 11.0 QTP是 quickteSt PrOfeSSiOnal 的简称,是一种自动测试工具。使用QTP的目 的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等 QUiCkTeSt针对的是GUl应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。它可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。其中包括:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。 2、WinRUnner MerCUry Interactive 公司的 WinRUnner是一种企业级的功能测试工具,用 于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRUnner能够有效地帮助测试人员对复杂的企 业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。 企业级应用可能包括 Web应用系统,ERP系统,CRM S统等等。这些系统在发布之前,升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不同环境的应用系统,是每个公司都会面临的问题。 3、RatiOnal Robot 是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面IBM Rational TeSt Manager上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。 4、AdVentNet QEngine AdVentNet QEngine是一个应用广泛且独立于平台的自动化软件测试工具, 测试、 可用于Web功能Web性能测试、JaVa应用功能测试、JaVa APl测试、SoAP测试、回归测试和 JaVa

Lucene简介

在应用中加入全文检索功能 ——基于Java的全文索引引擎Lucene简介 作者:车东 Email: https://www.360docs.net/doc/275251399.html,/https://www.360docs.net/doc/275251399.html, 写于:2002/08 最后更新:09/09/2006 17:09:05 Feed Back >> (Read this before you ask question) 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 https://www.360docs.net/doc/275251399.html,/tech/lucene.html 关键词:Lucene java full-text search engine Chinese word segment 内容摘要: Lucene是一个基于Java的全文索引工具包。 1.基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 2.全文检索的实现:Luene全文索引和数据库索引的比较 3.中文切分词机制简介:基于词库和自动切分词算法的比较 4.具体的安装和使用简介:系统结构介绍和演示 5.Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用 接口的扩展 6.从Lucene我们还可以学到什么 基于Java的全文索引/检索引擎——Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。 Lucene的作者:Lucene的贡献者Doug Cutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些INTERNET底层架构的研究。他贡献出的Lucene的目标是为各种中小型应用程序加入全文检索功能。 Lucene的发展历程:早先发布在作者自己的https://www.360docs.net/doc/275251399.html,,后来发布在SourceForge,2001年年底成为APACHE基金会jakarta的一个子项目:https://www.360docs.net/doc/275251399.html,/lucene/ 已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有: Jive:WEB论坛系统;

关于测试工作流程及工具使用.doc

1前言 本文档仅作用于公司内部人员使用参考,主要概括的是开发组与测试组的工作流程及工作衔接内容,该文档由测试组人员内部制定,若有考虑不周之处请给出建议!编写此流程的主要目的是规范测试,提高开发组与测试组的工作效率,尽可能早地找到BUG,并保证得以修复。 2测试流程简介 2.1 测试工作总体流程 2.1.1测试计划用例设计 审 核 不 通 过

2.1.1.1 执行环境 1、项目立项后,项目组讨论项目实施过程后执行此流程; 2、前提是须有《项目技术规范说明书》,若客户未提供可从其它途径获取客户需求(如 以前项目文档,样机获取等); 3、与开发组的程序设计阶段同步,即开发设计项目实施时测试组同步进行测试设计,此 过程为测试执行做准备工作; 4、立项项目经理把技术规范说明书共享给开发、测试组开发组人员解析说明书 并设计代码、测试组根据说明书作出测试计划、测试用例此阶段完成(此过程中开发组和测试组进行功能规格沟通)。 2.1.1.2 执行细则 测试计划 测试负责人根据项目的需求,制定测试计划,明确目标与测试任务以及测试人员的安排。测试计划分复杂文档型和简单实用型,综合我司目前情况,比较适用后者即简单实用型,引用Microsoft Project来计划分配项目任务,把项目细分为各个阶段、阶段再细分为各个任务,任务精确到具体时间、负责人,测试计划的主要要素包括:项目名称、任务名称、工期、开始时间、完成时间、资源名称等,如下图。 测试用例 依据已引用的用例模板,进行用例设计,挖掘用户潜在需求并结合到用例设计,与需求接口人沟通获取更直观的用户要求; 若项目时间充足,测试用例可提供给开发人员,以便开发人员结合代码设计思路给出建议,使测试用例达到更高的可执行效果; 测试用例由测试组相应测试人员设计。

javacc+JJTree

一.JavaCC简介 JavaCC(Java Compiler Compiler)是一个用JAVA开发的最受欢迎的语法分析生成器。这个分析生成器工具可以读取上下文无关且有着特殊意义的语法并把它转换成可以识别且匹配该语法的JAVA程序。JavaCC 可以在Java虚拟机(JVM) V1.2或更高的版本上使用,它是100%的纯Java代码,可以在多种平台上运行,与Sun当时推出Java的口号"Write Once Run Anywhere"相一致。JavaCC还提供JJTree工具来帮助我们建立语法树,JJDoc工具为我们的源文件生成BNF范式(巴科斯-诺尔范式)文档(Html)。 二.JavaCC的特点 JavaCC是一个用Java语言写的一个Java语法分析生成器,它所产生的文件都是纯Java代码文件,JavaCC和它所自动生成的语法分析器可以在多个平台上运行。 下面是JavaCC的一些具体特点: 1.TOP-DOWN:JavaCC产生自顶向下的语法分析器,而YACC等工具则产生的是自底向上的语法分析器。 采用自顶向下的分析方法允许更通用的语法(但是包含左递归的语法除外)。自顶向下的语法分析器还有其他的一些优点,比如:易于调试,可以分析语法中的任何非终结符,可以在语法分析的过程中在语法分析树中上下传值等。 https://www.360docs.net/doc/275251399.html,RGE USER COMMUNTIY:是一个用JAVA开发的最受欢迎的语法分析生成器。拥有成百上千的下载量和 不计其数是使用者。我们的邮件列表(https://https://www.360docs.net/doc/275251399.html,/doc/mailinglist.html )和新闻组(https://www.360docs.net/doc/275251399.html,pilers.tools.JavaCC)里的参与者有1000多人。 3.LEXICAL AND GRAMMAR SPECIFICATIONS IN ONE FILE:词法规范(如正则表达式、字符串等)和语法 规范(BNF范式)书写在同一个文件里。这使得语法易读和易维护。 4.TREE BUILDING PREPROCESSOR: JavaCC提供的JJTree工具,是一个强有力的语法树构造的预处理程 序。 5.EXTREMELY CUSTOMIZABLE:JavaCC提供了多种不同的选项供用户自定义JavaCC的行为和它所产生的 语法分析器的行为。 6.CERTIFIED TO BE 100% PURE JAVA:JavaCC可以在任何java平台V1.1以后的版本上运行。它可以不 需要特别的移植工作便可在多种机器上运行。是Java语言”Write Once, Run Everywhere”特性的证明。 7.DOCUMENT GENERATION:JavaCC包括一个叫JJDoc的工具,它可以把文法文件转换成文本本件(Html). 8.MANY MANY EXAMPLES:JavaCC的发行版包括一系列的包括Java和HTML文法的例子。这些例子和相应 的文档是学习JavaCC的捷径。 9.INTERNATIONALIZED:JavaCC的词法分析器可以处理全部的Unicode输入,并且词法规范何以包括任 意的Unicode字符。这使得语言元素的描述,例如Java标识符变得容易。

常用测试工具使用说明

A VC-AGC常用测试工具使用说明 编制:余勇强 更新日期:2013年12月7日

目录 (1) 1、IEC104tester (3) 2、PMA商用软件 (10) 3、104SIM (15) 4、SOKIT (25) 5、SpuerCom (27) 6、ModSim32 (29) 7、mod_RSsim(版本:8.20.0.1) (33) 8、ModScan32 (37) 9、COMMIX (42) 10、WINSCT211 (42) 11、Modbus Poll (43) 12、Modbus Slave (46) 13、IEC101-103-104规约分析程序 (48) 14、TransFloat (49) 15、Beyond Compare 3 (49)

由于AVC_AGC调试中遇到的大多数问题都与通信有关,为了方便工程调试,尽可能减少一些不必要的麻烦,我把一些可以方便调试的工具梳理了一下,并把使用方法整理了一下,给大家做一个参考,具体请见正文。 1、IEC104tester IEC104tester是上海华东电科院出品的一个104规约测试工具,它可以模拟主站,也可以模拟子站;同时也可以模拟101规约的主站和子站,101规约和104规约类似。我现在把模拟104规约主站和子站的方法展示出来,以供大家参考。101规约以后会按需添加。 IEC104tester也有一定的局限性,模拟主站时,只能监视,不能手动模拟向下发送报文;模拟子站时也不能手动模拟向下发送报文,同时浮点型遥测数据只有一个固定值和随机变化两种情况可选,不能手动设定一个特定浮点数,但是标度化值和归一化值可以自由设定。 模拟104主站 ○1打开IEC104tester后选择工具栏上的“配置”—“基本特性配置”。 协议类型选择104规约,其中“传送原因(COT)”、“公共地址(ADDR)”和“信息体地址(IOA)”的字节长度需要和子站协商好,一般是“2、2、3”;对端IP地址和端口号也要和子站协商好并正确填写,端口号一般是2404。

Javac (J2SE) 编译器的词法分析介绍

第二章词法分析 (1) 2.1 单词符号的定义 (3) 2.2 词法分析程序的基本数据结构 (4) 2.3 词法分析程序的初始化 (7) 2.4 扫描下一个字符 (8) 2.5 扫描下一个符号 (9) 2.6 滤除源程序中注释 (14) 2.7 读取一个标识符 (15) 2.8 读取一个数值常量 (16) 2.9 词法分析程序运行实例 (17) 3.0 词法分析程序小结 (19) 第二章词法分析 将高级语言翻译成较低级的、面向机器的汇编语言或者某种中间表示,是一件非常复杂和困难的事情。自从IBM的计算机科学家第一次实现Fortran语言的编译器以来,全世界的计算机科学家对编译的技术进行了长期的研究和探索,总结出了一套行之有效的、对一般的高级程序设计语言普遍适用的翻译方法。这套方法的主要思想就是,把高级语言的翻译这个大问题划分为若干个相对容易解决的小问题,然后采用分而治之的策略逐个给出解决的方法。该划分一般是把编译器的主要任务分为:词法分析,语法分析和语义分析。其中词法分析要解决的问题是:从输入文件中读取字符形式的高级语言源程序,并把输入转化为一个由单词符号组成的流供语法分析部分进一步分析。这样使语法分析部分不必关心,例如单词符号如何组成,这样的细节问题,从而简化了语法分析的设计。 词法分析程序要完成的工作有: ?过滤掉源程序中空白字符和注释,因为这些信息仅仅增加了源程序的可读性便于程序员阅读和维护程序,而对于语法分析是完全无用的。 ?识别各种常量,并且把字符形式的表示翻译成编译器的内部表示。 ?识别标识符和关键字 ?识别源程序中的各种符号 程序设计语言的单词符号可以用乔姆斯基3型文法,也即正则文法描述。所谓正则文法,其产生式集合中仅含有如下形式的产生式: α→βα∈Vn, β=a 或者β=aB 其中a∈Vt, B∈Vn 由这种文法所产生的语言被认为是正则的。由形式语言和自动机理论可知,正则文法与正则表达式是等价的,并且正则文法所描述的语言可以用一种有穷自动机来识别。 下面是正则表达式的递归定义: (1)Φ是一个表示空集的正则表达式 (2)ε是一个正则表达式,它所表示的语言仅包含一个空符号串,即{ε} (3)a是一个正则表达式,a∈Vt。它所表示的语言是由单个符号所组成的,即{a} (4)如果e1和e2是正则表达式,其表示的语言分别为L1和L2,则: (e1)|(e2)是一个表示语言L1∪L2的正则表达式 (e1)(e2)是一个表示语言L1L2的正则表达式

Java程序设计课堂练习题课案

《Java程序设计》练习题 第一章 Java编程基础 一、选择题 1、可以使用【】实用程序编译Java程序。 A.java B.javac C.javadoc D.cmd 2、可以使用【】实用程序运行java应用程序。 A.java B.javac C.javadoc D.cmd 3、可以使用【】实用程序从Java源文件代码中抽取Java文档注释,生成相应的HTML帮助文档。 A.java B.javac C.javadoc D.cmd 4、Java编译单元(源程序文件)的扩展名为【】 A..java B..class C..doc D..exe 5、编译Java源程序文件产生的字节码文件的扩展名为【】 A..java B..class C..html D..exe 6、以下Java应用程序执行入口main方法的声明中,正确的是【】 A、public static void main() B、public static void main(String[] args) C、public static int main(String[] args) D、public void main(String[] args) 7、Java属于以下哪种语言?【】 A.机器语言 B.汇编语言C.高级语言 D.以上都不对 8、下面哪种类型的文件可以在Java虚拟机中运行?【】 A..java B..jre C..exe D..classs 9、Java程序中声明包的关键字是【】 A、java B、package C、javadoc D、cmd 10、如果JDK的安装路径为“d:\jdk”,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?【】 A、d:\jdk; B、d:\jdk\bin; C、d:\jre\bin; D、d:\jre; 11、下列说法中,不正确的是【】。 A、一个Java源文件编译通过后,得到的结果文件数也只有一个 B、一个Java源文件经过编译后,得到的文件的扩展名一定是.class C、一个Java源文件只能有一个public类定义,其类名与源文件名相同 D、一个Java源文件可以包含多个类

软件测试工具说明

软件测试工具说明 一、思维导图 开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis 开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject 开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator [TestDirector]:企业级测试管理工具,也是业界第一个基于Web的

测试管理系统。 [Quality Center]:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。 [QuickTest Professional]:用于创建功能和回归测试。[LoadRunner]:预测系统行为和性能的负载测试工具。 [其他工具与自动化测试框架]:Rational Functional Tester、Borland Silk系列工具、WinRunner、Robot等。 国内免费软件测试工具有:AutoRunner和TestCenter。 主流软件测试工具介绍 测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具,这些产品主要是MercuryInteractive(MI)、Segue、IBM Rational、 Compuware和Empirix等公司的产品,而MI公司的产品占了主流。 1、白盒测试工具 白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。 (1)静态测试工具:直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型

JAVA技巧:模块化编程的优点与实现原理概述

JAVA技巧:模块化编程的优点与实现原理概述 2010年01月27日09:30 本文是《Rich Client Programming:Plugging into the NetBeans Platform》(中文版译名为《NetBeans富客户端编程权威教程》,Sun中国技术社区推荐的NetBeans学习用书)英文版公开章节,即第二章的节选译文,章节名称为“模块化编程的好处”。通过阅读这一章节,读者们将对模块化编程的起源和实现原理产生初步的了解,并了解到模块化编程的优点。有关模块化编程的实现部分,本文着重介绍了NetBeans的情况。 分布式开发 闭门造车的软件开发时代早已过去。在嵌入式系统之外,几乎每一位开发者都需要依赖别人写的类库或框架。这种借助并复用他人提供的基础设施、框架以及类库的好处在于使自己能够专注于应用本身的逻辑当中。这样缩短了软件开发所需要的时间。 过去的几十年间,开源软件的兴起令类库的复用具有双倍的吸引力。我们现在有针对多种程序中的各种问题而诞生的现成解决方案,而获取这些解决方案不用花一文钱。开源产品起于UNIX内核,基础C类库和命令行工具,并通过Web服务器和Web浏览器延伸至Ant,Tomcat,JUnit,Javacc等Java工具领域——而这种情况还有无限制发展的趋势。在编写一个现代软件的过程中,集成工作的部分和创新的部分大致是对半分的。将可用的碎片捡起来并组合到一起是现代应用开发的主要工序。人们不再从零开始编写一切。人们在需要HTTP服务器的时候为他们的应用选择Apache或者Tomcat,在需要数据库的时候选择MySQL或PostgreSQL。应用软件将这些零碎部件粘连起来,并加入自己的逻辑。最终的成品是功能完备的、性能好的、并且在相当短的时间内开发出来的应用软件。 看看Linux版本是如何发行的。红帽的Fedora,Mandriva,SUSE,还有Debian,它们所包含的应用程序其实大致上差不多,而且都是同一群人写的。发布者不过是简单的将它们打包,并提供“胶水”用于统一的安装。发行商往往只编写中央管理软件和安装软件,并提供一些质量保证,以确保所有选定的组件能够协同工作。这个过程对于Linux 的普及产生了相当理想的效果。有一个例子可以证明此模型的意义,那就是Mac OS X:它其实就是个安装了一堆苹果插件的FreeBSD Unix。对于这样的软件,需要注意的一个重点就是它创建的方式采用了一种分布式开发模型。软件的开发者和发行者可能完全不认识对方,也没有交流过,而他们往往也并不生活在同一个地域。 这种分布式开发有如下特征。第一,应用程序(或操作系统)的源代码不再处于某一个开发者完全的掌控之中。源代码被散布至世界各地。毫无疑问,构建这样的软件与

JavaCC-TM

<>作业 !!!!!!!!!!!!!!!晓超友情提示!!!!!!!!!!!!!!!!!! 答案仅供参考!!!!!! 一.简答题(10小题) 1.Java语言源文件的命名规则是怎样的? 答:文件名和共有类名一致 2.Java应用程序的主类必须含有怎样的方法? 答:public static void main(String args[]){} 3.Java为什么与平台无关?【答案特别仅供参!!!书上第5页中】 答:JAVA解释器生成与体系结构无关的字节码结构的文件格式,它们可在任何种类的处理器上运行,只需提供相应得JAVA运行系统即可。 4.说明Java的四种访问权限。 答:private protected public default 5.package语句和import语句的作用是什么? 答:package生成包 import是导入包 6.关键字super的两种用法是什么? 答:用来访问父类被隐藏的成员变量。用来调用父类中被重写的方法。调用父类的构造方法。 7.声明一个子类,实现一个接口的语法格式是怎样的? 答:implements 加接口名 8.什么是例外?如何处理? 答:异常是在程序的运行过程中所发生的异常事件,它中断指令的正常运行。9.什么叫进程和多线程?Java如何处理多线程? 答:每个进程都有独立的代码和数据空间,进行进程切换的开销比较大。10.什么叫组件和容器?两者之间有什么关系? 答:详见书上209页组件∈容器 二.单选题(10小题) 1.Java语言和C/C++语言的相同点在于( A )。 A.使用相似的语法 B.与平台无关 C.源程序中都是类 D.支持多重继承 2.一个包含类A,B,C的Java源程序A.java,编译产生的类文件是( D )。 A.A.class B.B.class C.C.class D.A.class B.classc C.class 3.下列哪一个是合法的Java标识符( B )。c A.test## B.2Example C.$change D.static 4.指出正确的表达式语句( D )。 A.byte b=128; B.boolean b=1; C.long l=-100L; D.double d=0.925; 5.下面的数组定义中错误的是( C )。 A.int array[]={1,2,3,4,5}; B.int[] array={1,2,3,4,5}; C.String s=new String[5]; D.String s[]=new String[5]; 6.关于构造函数,下列叙述错误的是( B )。 A.构造函数是类的一种特殊函数,他的方法名必须与类名相同

相关文档
最新文档