JAVA编程规范--试题姓名:工号:部门:成绩:一. 判断题(共15题,每题2分,直接在括号内打“√”或“×”)1、任何时候都不要使接口可以序列化。
x2、相对独立的程序块之间、变量说明之后必须加空行。
√3、当程序需要释放对象的时候,应该手工调用finalize方法以释放对象。
x4、公司的规范要求注释率是20%以上,并且必须有助于对程序的阅读理解。
x5、为了程序更加简洁,我们应该尽量使用下面的方式来赋值:a = b = 1 。
x6、每个类都需要定义构建器。
x7、类名、方法名、属性名的命名,都应该使用意义完整的英文描述。
√8、main() 方法的定义是public static void main(String args[])。
x9、常量名应该使用全大写,英文单词之间用下划线或者-分隔开。
并且,常量应该使用final static修饰。
x10、公有方法参数名可以和属性名相同,但局部变量不能和属性名相同。
√11、一两行代码就能完成的功能没有必要编写方法实现。
x12、对于模块间接口方法的参数的合法性检查,调用者和被调用者都应该对参数进行合法性检查。
x13、运行期异常使用RuntimeException的子类来表示,必须在方法声明上加throws子句。
x非运行期异常是从Exception继承而来的,不用在可能抛出异常的方法声明上加throws 子句。
x14、使用ObjectStream 的方法后,调用release() ,释放对象。
X2022-4-25 第1页, 共21页15、减小单个方法的复杂度,使用的 if, while, for, switch 语句要在10个以内。
√二、单项选择题(共23题,每题2分)( c )1、排版时,代码缩进应该采用的方式是:(A)Tab缩进(B)2个空格缩进(C)4个空格缩进(D)8个空格缩进( c )2、下面哪条语句是不符合规范的:(A)int count = 0;int num = 0;....;//program codeif (count == num){....;}(B)long count = 0L;long num = 0L;....;//program codeif (count == num){2022-4-25 第2页, 共21页....;}(C)float count = 0f;float num = 0f;....;//program codeif (count == num){....;}(D)以上语句都符合规范( b )3、对命名规范描述错误的是:(A)、包名单词的首字母应该大写。
(B)、类、接口名的单词首字母应该大写。
(C)、方法名的单词首字母应该大写。
(D)、变量名的单词首字母应该大写。
( b )4、下面那句话是正确的:(A)、main() 方法的位置是可以随意放置的。
(B)、所有的变量都应该显示初始化。
(C)、线程中需要实现 start() 方法。
(D)、可以在运算中适当减小数据的精度,以减少计算量。
2022-4-25 第3页, 共21页( c )5、下面那条语句是符合编码规范的:(A)、for (int i = 0; i++; i < 10){if ( isEnd ){i = 10;}}(B)、for (int i = 0; i++; i < 10){if ( isEnd ){i = 11;}}(C)、for (int i = 0; i++; i < 10){if ( isEnd ){break;}}(D)、for (int i = 0; i++; i < 10)2022-4-25 第4页, 共21页{if ( isEnd == true){break;}}( a )6、下列对命名规范描述正确的是:(A)、可以将类名的第一个字母改成小写作为变量名。
(B)、由于java是区分大小写的,因此,我们为两个类命名时,可以让其字符相同,仅大小写不同,加以区分(C)、属性名可以和方法名相同(D)、方法的参数名一般不能和属性名相同,以免混淆。
( c )7、关于方法命名,下面那句话是正确的:(A)、除了构建器外,定义和类名相同的方法名会产生编译错误。
(B)、如果没有定义构建器,那么可以定义和类名相同的方法名。
(C)、定义和类名相同的方法名不会产生错误,只是有时候容易混淆。
(D)、定义和类名相同的方法名不会有任何问题。
( c )8、关于servlet,下面那句话是错误的:(A)、不要使用 java.beans.Beans.instantiate() 方法。
(B)、不再使用HttpSession时,应该尽早使用 invalidate() 方法释放。
(C)、任何时候都不能使用Servlet的 SingleThreadModel。
(D)、不再使用JDBC资源时,应该尽早使用 close() 方法释放。
( c )9、下面那句话是错误的:2022-4-25 第5页, 共21页(A)、包的注释写入一个名为 package.html 的HTML格式的说明文件放入当前路径。
(B)、注释应该与其上面的代码用空行隔开。
(C)、接口一般都非常简单,如一些方法申明等,可以不写注释,而到具体的实现类中再写。
(D)、成员变量注释内容应该包括:成员变量的意义、目的、功能,可能被用到的地方。
( d )10、关于安全,下面那句话是正确的:(A)、任何时候都不要使用内部类。
(B)、任何时候都不要使类可以克隆。
(C)、任何时候不要使接口可以序列化。
(D)、为方法、属性和类定义明确的存取控制,并且尽量不要使用友好方法、属性和类。
( c )11、下列关于注释说法正确的是:(A)、包注释可有可无,一般大家都是看类注释和方法注释。
(B)、可以把一个类的类注释改为它的文件注释。
(C)、类注释应该放在package 关键字之后,class 或者 interface 关键字之前。
(D)、文件注释应该使用javadoc定义的方式注释,保证能够被收集并形成doc文档。
( b )12、关于国际化,下面那句话是错误的是:2022-4-25 第6页, 共21页(A)、不要使用 String 类的 compareTo(), equals() 方法。
(B)、在进行字符串连接时,不要使用String,使用StringBuffer。
(C)、不要使用 Date.toString() ,Time.toString() 方法。
(D)、字符和字符串常量应该放在资源文件中。
( b )13、关于复杂度,下面那句话是错误的是:(A)、继承层次建议不要超过5层。
(B)、方法行数建议在10-50行。
(C)、方法参数建议不要超过5个。
(D)、类的行数建议不要超过1000行。
( d )14、下面代码,那个是符合编码规范的:(A)、private static String SERVER_NAME = “CLIENT”;使用 final static 修饰。
public final static int MAX_VALUE = 1000;(B)、class A{...;// program code}class B extends A{public Object clone(){A a = new A();//在 clone() 方法中应该而且必须使用super.clone() 而不是 new2022-4-25 第7页, 共21页...;// B clone code}}(C)、class A{public A(){...;// program code}}(D)、class A{public boolean equals(Object o){...;// program code}public int hashCode(){...;// program code}}( d )15、下面代码,那个是符合编码规范的:(A)、if (writeToFile =true)2022-4-25 第8页, 共21页{writeFileThread.interrupt();}(B)、if (writeToFile)writeFileThread.interrupt();(C)、int a=l; a++;(D)、if ((a >= b) && (c > d)){... // program code}( c )16、调试代码,增加打印信息,应该使用:(A)System.out(B)System.err(C)包含统一开关的测试类进行统一打印(D)以上都不是( d )17、程序的效率关键在于:(A)高技巧的语句(B)结构清晰的语句(C)符合编程规范的语句(D)以上都不是2022-4-25 第9页, 共21页( c )18、下面哪个线程调用是符合编程规范的:(A)resume()(B)suspend()(C)start()(D)stop()( d )19、对于创建的主要的类,最好置入main()函数,下面哪个不需要(A)能完成独立功能的类,如通讯类。
(B)具有完整界面的类,如一个对话框、一个窗口、一个帧等。
(C)JavaBean 类。
(D)资源类。
( b )20、下面说法错误的是:(A)源程序中关系较为紧密的代码应尽可能相邻。
(B)集合中的数据不使用时,虚拟机会负责收集,因此不需要显示释放。
(C)如果多段代码重复做同一件事情,那么在方法的划分上可能存在问题。
(D)静态成员或者方法使用类名访问,不使用句柄访问。
( d )21、下面说法错误的是:(A)不要覆盖父类的静态方法和私有方法。
(B)不要覆盖父类的属性。
(C)不要使用两级以上的内部类。
(D)在Sevlets中必须使用同步方法。
( c )22、下面那句话是正确的:2022-4-25 第10页, 共21页(A)、所有的类都应该重载toString方法,返回该类有意义的内容。
(B)、明确方法功能,近似地实现方法设计。
(C)、赋值运算符”=”前后都应该加空格。
(D)、get、set方法和相关属性,应该尽量放在一起定义。
( d )23、下面代码,那个是不符合编码规范的:(A)、switch (number)case 1 :... // program codebreak;default :break;(B)、switch (number)case 1 ://1和2具有同样的含义,所以1也进入2的处理case 2 :... // program codereturn ;default :break;(C)、switch (number)case 1 :... // program code2022-4-25 第11页, 共21页return;default :break;(D)、以上都是符合编码规范的三、多项选择题(共12题,每题2分)( ab )1、对于javadoc中的方法注释描述正确的是:(A)、@deprecated 表示该方法不建议使用(B)、@return 表示返回的类型。