Java编程规范试题

Java编程规范试题
Java编程规范试题

JAVA编程规范--试题

姓名:工号:部门:成绩:

一. 判断题(共15题,每题2分,直接在括号内打“√”或“×”)

1、任何时候都不要使接口可以序列化。x

2、相对独立的程序块之间、变量说明之后必须加空行。√

3、当程序需要释放对象的时候,应该手工调用finalize方法以释放对象。x

4、公司的规范要求注释率是20%以上,并且必须有助于对程序的阅读理解。x

5、为了程序更加简洁,我们应该尽量使用下面的方式来赋值:a = b = 1 。x

6、每个类都需要定义构建器。x

7、类名、方法名、属性名的命名,都应该使用意义完整的英文描述。√

8、main() 方法的定义是public static void main(String args[])。x

9、常量名应该使用全大写,英文单词之间用下划线或者-分隔开。并且,常量应该使用

final static修饰。x

10、公有方法参数名可以和属性名相同,但局部变量不能和属性名相同。√

11、一两行代码就能完成的功能没有必要编写方法实现。x

12、对于模块间接口方法的参数的合法性检查,调用者和被调用者都应该对参数进行合

法性检查。x

13、运行期异常使用RuntimeException的子类来表示,必须在方法声明上加throws子句。

x非运行期异常是从Exception继承而来的,不用在可能抛出异常的方法声明上加throws 子句。x

14、使用ObjectStream 的方法后,调用release() ,释放对象。X

2017-10-11 第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 code

if (count == num)

{

....;

}

(B)

long count = 0L;

long num = 0L;

....;//program code

if (count == num)

{

2017-10-11 第2页, 共21页

....;

}

(C)

float count = 0f;

float num = 0f;

....;//program code

if (count == num)

{

....;

}

(D)以上语句都符合规范

( b )3、对命名规范描述错误的是:

(A)、包名单词的首字母应该大写。

(B)、类、接口名的单词首字母应该大写。

(C)、方法名的单词首字母应该大写。

(D)、变量名的单词首字母应该大写。

( b )4、下面那句话是正确的:

(A)、main() 方法的位置是可以随意放置的。

(B)、所有的变量都应该显示初始化。

(C)、线程中需要实现 start() 方法。

(D)、可以在运算中适当减小数据的精度,以减少计算量。

2017-10-11 第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)

2017-10-11 第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、下面那句话是错误的:

2017-10-11 第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、关于国际化,下面那句话是错误的是:

2017-10-11 第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() 而不是 new

2017-10-11 第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)

2017-10-11 第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)以上都不是

2017-10-11 第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、下面那句话是正确的:

2017-10-11 第10页, 共21页

(A)、所有的类都应该重载toString方法,返回该类有意义的内容。

(B)、明确方法功能,近似地实现方法设计。

(C)、赋值运算符”=”前后都应该加空格。

(D)、get、set方法和相关属性,应该尽量放在一起定义。

( d )23、下面代码,那个是不符合编码规范的:

(A)、

switch (number)

case 1 :

... // program code

break;

default :

break;

(B)、

switch (number)

case 1 :

//1和2具有同样的含义,所以1也进入2的处理

case 2 :

... // program code

return ;

default :

break;

(C)、

switch (number)

case 1 :

... // program code

2017-10-11 第11页, 共21页

return;

default :

break;

(D)、以上都是符合编码规范的

三、多项选择题(共12题,每题2分)

( ab )1、对于javadoc中的方法注释描述正确的是:

(A)、@deprecated 表示该方法不建议使用

(B)、@return 表示返回的类型。

(C)、public LogIterator read(String logType) throws IOException中的

参数应该这样注释:

/**

@param logType String

*/

(D)、C例子中的异常应该如下注释:

/**

@throws IOException * @exception/throws [违例类型] [违例说明]

*/。

异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用

@exception标注Runtime异常,@throws标注非Runtime异常。异常的注释必须说明该异常的含义及什么条件下抛出该异常。

( abcd )2、下面描述哪些是错误的:

(A)、方法的参数名和类中的方法名相同的时候会产生编译错误。

2017-10-11 第12页, 共21页

(B)、实现 equals() 方法时,先用 getClass() 或者 instanceof 进行类

型比较,可以提高性能。

(C)、equals()或者 ==都可以用来比较两个不同实例类的值是否相同。

(D)、每个类都应该定义main()方法。

( acdefgh )3、类的注释内容包含下面哪些:

(A)、版本号

(B)、类名

(C)、作者

(D)、当前存在的bug

(E)、生成日期

(F)、功能

(G)、如果不建议使用,标明@deprecated

(H)、与其他类的关系

( a )4、下面那些语句是符合编码规范的:

(A)、

private final static int SERVER_BUSY = 0;

private final static int SERVER_IDLE = 1;

int status = 0;

....;//program code

if (SERVER_BUSY == status)

{

2017-10-11 第13页, 共21页

...;// program code

}

else if (SERVER_IDLE == status )

{

...;// program code

}

(B)

String customName = “”;

if (customName.startWith(“A”))

{

...;// program code

}

(C)、

String address = “shenzhen”;

String area = address + “B”;

(D)、

private boolean beginFlag = false;

....;// program code

public boolean ifBegin()

{

...;// program code

2017-10-11 第14页, 共21页

return beginFlag;

}

( ad )5、对包的命名,下面正确的是:

(A)、com.huawei.产品名.模块名称

(B)、com.huawei.开发组名称.项目名称

(C)、com.huawei.部门名称.模块名称

(D)、com.huawei.部门名称.项目名称

( abcd )6、下面那些语句是不符合编码规范的:

(A)、

String data = receiveData();

String info = “” ;

while ( isEnd )

{

info = Tools.covertData(data);

char ch = data.charAt(point);

if (info.charAt(0) == ch)

{

isEnd = true ;

}

point ++ ;

2017-10-11 第15页, 共21页

(B)

String data = receiveData();

while ( isWait )

{

String info = “”;//不要在循环体中定义变量

...;// program code

};

(C)、

String data = receiveData();

String info = “”;

while ( isWait )

{

try

{

...;// program code

}

catch ( IOException e )

{

...;// program code

}

2017-10-11 第16页, 共21页

(D)、

String data = receiveData();

while ( isWait == true)

{

...;// program code

};

( abc )7、关于String和StringBuffer,下面那些是正确的:

(A)、常量字符串使用 String, 非常量字符串使用 StringBuffer。

(B)、使用StringBuffer的时候设置初始容量。

(C)、尽量使用 StringTokenizer 代替 indexOf() 和 substring()。

(D)、尽量不要使用 StringBuffer , StringTokenizer类。

( abcd )8、下面那些语句是不符合编码规范的:

(A)、

String env = System.getenv();

if ( isWait )

{

...;// program code

}

(B)

public class ThreadPool

2017-10-11 第17页, 共21页

{

private int minThread = 10;

private int maxThread = 100;

...;// program code

class Worker

{

...;// program code

}

}

(C)、

String[][] data = null ;

String[][] data1 = null ;

...;// program code

for (int i = 0; i < data.length; i++)

{

for (int j = 0; j

{

data1[i][j] = data[i][j];

}

}

(D)、

2017-10-11 第18页, 共21页

String[][] sendData = null ;

String[][] backupData = null ;

...;// program code

for (int i = 0; i < sendData.length; i++)

{

for (int j = 0; j< sendData[i].length; j++)

{

backupData[i][j] = sendData[i][j];

}

}

( bc )9、异常捕获后,如果不对该异常进行处理,则下面哪些方法是正确的:(A)、使用exception.getMessage()纪录日志 toString()

(B)、使用异常类的printStackTrace()方法打印异常信息

(C)、特殊情况下,可以不处理异常,只要用注释加以说明就可以了

(D)、使用空语句{}

( acd )10、关于程序中异常的处理,下面描述错误的是:

(A)、可以用异常来控制程序流程,因为异常的处理效率比条件分支高。

(B)、不要过多地使用异常,同时在捕获异常处理的时候,要尽量的捕

获处理异常的最小子类。

(C)、根据程序结构决定使用异常还是使用错误码,还是混合使用。

2017-10-11 第19页, 共21页

(D)、当需要扔出一个ERROR类型的异常时,应该自定义一个ERROR

的子类供使用。

( abcd )11、下面说法正确的是:

(A)、没有子类的友好类应该定义成 final。

(B)、没有被覆盖的友好方法应该定义成 final

(C)、不定义在包中没有被用到的友好属性、方法和类

(D)、不要定义不会被用到的局部变量、类私有属性、类私有方法和方

法参数

( abcd )12、下面那些语句是不符合编码规范的:

(A)

try

{

// ... ...

out.close();

}

catch(IOException ioe)

{

out.close();

//... ...

}

2017-10-11 第20页, 共21页

相关主题
相关文档
最新文档