期末测试丨有关代码编写的那些准则,你掌握了多少呢?

你好,我是范学雷。

《代码精进之路》这个专栏已经完结很久了,写专栏的日子依然很难忘,很多同学都会积极地贡献自己的想法、经验,这些思考极大地丰富了专栏的内容,对我也有很多启发。

感谢你一直以来的认真学习和支持。

为了让你更好地检测自己的学习成果,我特意做了一套期末测试题。题目共有20道,满分为100分,快来检测一下吧!

精选留言

  • 高原

    2022-08-18 09:14:06

    90分
  • ifelse

    2022-08-05 16:48:55

    95分
  • 刚毅坚卓

    2022-05-03 09:51:38

    2/20 单选题
    高质量的代码,依赖于高质量的流水线。下面的哪一项描述是不恰当的?

    A、软件的质量,主要由公司的质量测试部门负责把关,并且承担相应责任
    为了确保代码的质量,要使用恰当的工具,比如集成开发环境,

    答案:A

    题目解析
    A.质量测试部门承担重要责任,但是软件的质量是由软件制造流水线整体决定的。任何一个环节出了问题,软件质量都无法保障。

    还是不太理解a为什么错了
  • 数字随行

    2020-07-01 16:56:31

    19题,感觉是A。有的方法只看方法名是不能明确方法的行为的。
  • Geek_225244

    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关键字。
    作者回复

    final关键词没有问题,有问题的是static关键字使用不恰当。sessionId声明为final, 只是表明sessionId的值不能更改,但是sessionId指向的数组还是可以修改的。请参考第34篇。

    2020-05-04 00:19:21