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
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;
....;..;
}
(B)
long count = 0L;
long num = 0L;
....;..;
}
(C)
float count = 0f;
float num = 0f;
....;..;
}
(D)以上语句都符合规范
( b )3、对命名规范描述错误的是:
(A)、包名单词的首字母应该大写。
(B)、类、接口名的单词首字母应该大写。
(C)、方法名的单词首字母应该大写。
(D)、变量名的单词首字母应该大写。( b )4、下面那句话是正确的:
(A)、main() 方法的位置是可以随意放置的。
(B)、所有的变量都应该显示初始化。
(C)、线程中需要实现 start() 方法。
(D)、可以在运算中适当减小数据的精度,以减少计算量。( 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)
{
if ( isEnd == true)
{
break;
}
}
( a )6、下列对命名规范描述正确的是:
(A)、可以将类名的第一个字母改成小写作为变量名。
(B)、由于java是区分大小写的,因此,我们为两个类命名时,可以让其字符相同,仅
大小写不同,加以区分
(C)、属性名可以和方法名相同
(D)、方法的参数名一般不能和属性名相同,以免混淆。
( c )7、关于方法命名,下面那句话是正确的:
(A)、除了构建器外,定义和类名相同的方法名会产生编译错误。
(B)、如果没有定义构建器,那么可以定义和类名相同的方法名。
(C)、定义和类名相同的方法名不会产生错误,只是有时候容易混淆。
(D)、定义和类名相同的方法名不会有任何问题。
( c )8、关于servlet,下面那句话是错误的:
(A)、不要使用 () 方法。
(B)、不再使用HttpSession时,应该尽早使用 invalidate() 方法释放。
(C)、任何时候都不能使用Servlet的 SingleThreadModel。
(D)、不再使用JDBC资源时,应该尽早使用 close() 方法释放。
( c )9、下面那句话是错误的:
(A)、包的注释写入一个名为的HTML格式的说明文件放入当前路径。
(B)、注释应该与其上面的代码用空行隔开。
(C)、接口一般都非常简单,如一些方法申明等,可以不写注释,而到具体的实现类中
再写。
(D)、成员变量注释内容应该包括:成员变量的意义、目的、功能,可能被用到的地方。( d )10、关于安全,下面那句话是正确的:
(A)、任何时候都不要使用内部类。
(B)、任何时候都不要使类可以克隆。
(C)、任何时候不要使接口可以序列化。
(D)、为方法、属性和类定义明确的存取控制,并且尽量不要使用友好方法、属性和类。( c )11、下列关于注释说法正确的是:
(A)、包注释可有可无,一般大家都是看类注释和方法注释。
(B)、可以把一个类的类注释改为它的文件注释。
(C)、类注释应该放在package 关键字之后,class 或者 interface 关键字之前。
(D)、文件注释应该使用javadoc定义的方式注释,保证能够被收集并形成doc文档。
( b )12、关于国际化,下面那句话是错误的是:
(A)、不要使用 String 类的 compareTo(), equals() 方法。
(B)、在进行字符串连接时,不要使用String,使用StringBuffer。
(C)、不要使用 () ,() 方法。
(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
{
...;.;.;.;.;. . . . ..;.;.;.;..;.;品名.模块名称
(B)、.开发组名称.项目名称
(C)、.部门名称.模块名称
(D)、.部门名称.项目名称
( abcd )6、下面那些语句是不符合编码规范的:
(A)、
String data = receiveData();
String info = “” ;
while ( isEnd )
{
info = (data);
char ch = (point);
if (0) == ch)
{
isEnd = true ;
}
point ++ ;
}
(B)
String data = receiveData();
while ( isWait )
{
String info = “”;.;.;.;.;.;.;.;.;ength; j++) {
data1[i][j] = data[i][j];
}
}
(D)、
String[][] sendData = null ;
String[][] backupData = null ;
...;ength; j++)
{
backupData[i][j] = sendData[i][j];
}
}
( bc )9、异常捕获后,如果不对该异常进行处理,则下面哪些方法是正确的:(A)、使用()纪录日志 toString()
(B)、使用异常类的printStackTrace()方法打印异常信息
(C)、特殊情况下,可以不处理异常,只要用注释加以说明就可以了
(D)、使用空语句{}
( acd )10、关于程序中异常的处理,下面描述错误的是:
(A)、可以用异常来控制程序流程,因为异常的处理效率比条件分支高。
(B)、不要过多地使用异常,同时在捕获异常处理的时候,要尽量的捕获处理异常的最小子类。
(C)、根据程序结构决定使用异常还是使用错误码,还是混合使用。
(D)、当需要扔出一个ERROR类型的异常时,应该自定义一个ERROR的子类供使用。
( abcd )11、下面说法正确的是:
(A)、没有子类的友好类应该定义成 final。
(B)、没有被覆盖的友好方法应该定义成 final
(C)、不定义在包中没有被用到的友好属性、方法和类
(D)、不要定义不会被用到的局部变量、类私有属性、类私有方法和方法参数( abcd )12、下面那些语句是不符合编码规范的:
(A)
try
{
. ...
();
}
catch(IOException ioe)
{
();
...
}
(B)
if (high << 8 | low)
(C)
if (a | b && (a & c))
(D)
public interface TransInterface
{
public final static int TRANS_BUSY = 0;
public int getTransStatus();
}