- Memory dump 属于软件三维度视图的_____
A Build-time 和 code-level view
B Run-time 和 period view
C Run-time 和 moment view
D Moment 和 component-level view
答案:D
知识点:软件构造的多维视图
Moment | Moment | Period | Period | |
---|---|---|---|---|
Code-level | Component-level | Code-level | Component-level | |
Build-time | Source code(源代码), AST(语法分析树), Interface-Class-Attribute-Method(Class Diagram类图) | Package(包),Library(库),Source File(源文件),Static linking(静态链接), Test Case(测试用例)(Component Diagram模块图) | Code Churn(代码变化) | Configuration Item(配置文件),Version(版本) |
Run-time | Code Snapshot(代码快照图),Memory dump(内存转储) | Package,Library,Dynamic linking(动态连接),Configuration(配置),Database(数据库),Middleware(中间件),Network( 络),Hardware(硬件)(Deployment Diagram部署图) | Execution trace(执行追踪),Procedure Call Graph(程序调用图), Message Graph(信息图)(Sequence Diagram时序图),Parallel and multi-threads/processes(并发和多线程/进程)Distributed processes(分布式进程) | Event log(日志记录),Procedure Call Graph,Message Graph(Sequence Diagram),Parallel and multi-threads/processesDistributed processes |
Memeory dump是内存转储,属于rum-time,moment和code-level view。
- 以下关于软件配置管理 SCM 和 Git 的说法,不正确的是____
A 软件配置项 SCI 是软件演化过程中发生变化和 SCM 管理变化的基本单元,不需再细分
B Git 中在本地机器上的.git 目录对应于 SCM 中的配置管理数据库 CMDB
C Git 中的 SCI 是“文件”,它有三种形态:已修改(modified)、已暂存(staged)、已提交(committed)
D Git 中两次相邻提交 v1 和 v2,若后者提交时间晚于前者,那么 Git 仓库中只记录 v2 中的文件相对于 v1 中的文件发生变化的代码行(增加和删除的代码行)。
答案:D
传统VCS存储版本之间的变化(行)。
Git存储发生变化的文件(而非代码行),不变化的文件不重复存储。
- 以下用“——”分割开的四个代码段在编译和执行时的结果分别是_______
A 编译错误 / 运行时错误 / 无错误 / 无错误
B 运行时错误 / 编译错误 / 无错误 / 运行时错误
C 编译错误 / 运行时错误 / 运行时错误 / 运行时错误
D 运行时错误 / 编译错误 / 编译错误 / 无错误
答案:B
知识点:类型检查
静态类型检查-编译错误 | 举例 |
---|---|
语法错误 | 额外的标点和拼写错误 |
类名/函数名错误 | Math.sine(2) |
参数数目错误 | Math.sin(30, 20) |
参数类型错误 | Math.sin(“30”) |
返回值类型错误 | 在一个需要返回int类型的方法中return “30” |
动态类型检查-运行时错误 | 举例 |
---|---|
非法的参数值 | 例如,在整形表达式x/y中,当且仅当y的值为0时发生错误,否则不会出错。所以在这个表达式中,除0不是一个静态错误,而是一个动态错误 |
非法的返回值 | 特定的返回值不能用要求的类型来表示 |
越界 | 负下标或者下标过大 |
空指针 | 调用null |
第一段:越界,运行时错误
第二段:赋值类型错误,编译错误
第三段:无错误
第四段:空指针,运行时错误
4.函数 boolean hasSameCharset (String str1, String str2)用于判定两个字符串 str1 和 str2 是否包含了相同的字符集合。例如,“HIT” 和 “HITTIH” 都且仅包含H、I 、T 三个字符,但将”HIT”和”MIT”作为参数输入该函数则返回 false。以下给出了该函数的3 个不同 spec,其中 spec 强度最弱的是______
第1个 | |
---|---|
requires: | str1 和 str2 的长度均>0 |
effects: | 若str1包含的字符集合与str2包含的字符集合相同,则返回true,否则返回false |
第2个 | |
---|---|
requires: | str1 和 str2 的长度均>0,且均不包含重复字符 |
effects: | 若str1包含的字符集合与str2包含的字符集合相同,则返回true,否则返回false |
第3个 | |
---|---|
requires: | 无 |
effects: | 若 str1 或 str2 为空,则抛出 NullParameterException;否则,若 str1 包含的字符集合与 str2 包含的字符集合相同,则返回 true,否则返回 false |
A 第1个
B 第2个
C 第3个
D 无法判断
答案:B
知识点:spec强弱判断
spec变强:更放松的前置条件+更严格的后置条件
5.类 WordList 有以下四个方法,仅根据其方法定义来确定其类型,最有可能分别是________
注:Creator ?, Mutator (M), Producer §, Observer (O)
A C / M / P / O
B C / O / M / O
C P / O / C / P
D C / M / O / O
答案:D
6.以下关于 ADT 的 RI 和 AF 的说法,不正确的是_______
A ADT 的 Abstract 空间(A)中的某个值,在其 Rep 空间?中可能有多个值与其对应
B 如果 ADT 的某个方法返回一个 mutable 的对象,并不一定表明该 ADT 产生了表示泄露
C 如果 ADT 的任意 constructor 所构造出的 object 都满足 RI、每个 mutator 方法执行结束后都保持 RI 为真,那么该 ADT 的 RI 就永远保持为真
D 一个 immutable 的 ADT,其 rep 可以是 mutable 的
答案:C
可能发生表示泄露,客户端在ADT外部的变化影响了ADT内部,使其不再符合RI。
7.类 Person 中 override 了 equals()方法,代码如下,那么该方法违反了____特性。注:name 是 String 类型,id 为 int 类型,二者均为 Person 的成员变量;Math.abs()用来计算绝对值,String.toLowerCase()将字符串中的所有字符变为小写。
A 传递性
B 自反性、传递性
C 自反性、传递性、对称性
D 都未违反
答案:C
自反性:假设A是一个Person类对象,其中A.name = “A”,A.id = 0,那么有A.equals(A) == false,所以不满足对称性。
传递性:假设A,B,C是三个Person类对象,其中A.name = “a”,A.id = 0,B.name = “a”,B.id = 5,C.name = “a”,C.id = 10,那么有A.equals(B) == true,B.equals? == true,A.equals? == false,所以不满足传递性。
对称性:假设A,B是两个Person类对象,其中A.name = “A”,A.id = 0,B.name = “a”,B.id = 0,那么有A.equals(B) == true,B.equals(A) == false,所以不满足对称性。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91536 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!