你好,我是范学雷。
《代码精进之路》这个专栏已经完结很久了,写专栏的日子依然很难忘,很多同学都会积极地贡献自己的想法、经验,这些思考极大地丰富了专栏的内容,对我也有很多启发。
感谢你一直以来的认真学习和支持。
为了让你更好地检测自己的学习成果,我特意做了一套期末测试题。题目共有20道,满分为100分,快来检测一下吧!
2022-08-18 09:14:06
2022-08-05 16:48:55
2022-05-03 09:51:38
2020-07-01 16:56:31
2020-05-03 15:43:00
final关键词没有问题,有问题的是static关键字使用不恰当。sessionId声明为final, 只是表明sessionId的值不能更改,但是sessionId指向的数组还是可以修改的。请参考第34篇。
2020-05-04 00:19:21
精选留言
2022-08-18 09:14:06
2022-08-05 16:48:55
2022-05-03 09:51:38
高质量的代码,依赖于高质量的流水线。下面的哪一项描述是不恰当的?
A、软件的质量,主要由公司的质量测试部门负责把关,并且承担相应责任
为了确保代码的质量,要使用恰当的工具,比如集成开发环境,
答案:A
题目解析
A.质量测试部门承担重要责任,但是软件的质量是由软件制造流水线整体决定的。任何一个环节出了问题,软件质量都无法保障。
还是不太理解a为什么错了
2020-07-01 16:56:31
2020-05-03 15:43:00
这段代码没有版权和授权信息,建议在代码头部添加版权和授权信息
B
这段代码的构造方法和实例方法没有注释,建议给每个方法都添加注释
C
这段代码的 toString(),hashCode(),equals() 方法是继承的方法,建议使用 Override 注解
D
getId() 的实现,直接返回了可以修改的内部变量,这存在潜在的安全风险。为了避免不必要的安全漏洞,建议返回 sessionId.clone()
package co.ivi.codenote;
/**
* Encapsulates an session identifier.
*/
final class SessionId {
static final byte[] sessionId;
SessionId(byte[] sessionId) {
this.sessionId = sessionId.clone();
}
byte[] getId() {
return sessionId;
}
public String toString() {
// snipped
}
public int hashCode() {
// snipped
}
public boolean equals() {
// snipper
}
}
您好,对第四个选项有疑问: static final byte[] sessionId;不是有final关键字了吗?getId()返回可以修改的内部变量,这个没明白。还有就是考试题中的 这种写法static fina会提示没有初始化,l编译器会报错的。是不是多写了个final关键字。