java规范信息

1 一、判断选择题(每题1分)
1. 表达式要在低优先级操作符处划分新行,分隔的操作符应放在行尾(B)
A 正确 B 错误

2. if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while等语句的执行语句无论多少都要加括号{} (A)
A 正确 B 错误

3. 注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置, 如有特殊需要,也可以放在代码的下方(B)
A 正确 B 错误

4. 对变量的定义和分支语句(条件分支、循环语句等)必须编写注释(A)
A 正确 B 错误

5. 对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释(A)
A 正确 B 错误

6. 常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 final static 修饰(A)
A 正确 B 错误

7. 属性名可以和公有方法参数相同,不能和局部变量相同(A)
A 正确 B 错误

8. 一个函数仅完成一件功能,即使简单功能也应该编写方法实现(A)
A 正确 B 错误

9. 所有的数据类必须重载toString() 方法,返回该类有意义的内容。说明:父类如果实现了比较合理的toString() ,子类可以继承不必再重写(A)
A 正确 B 错误

10. 数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-finally 的finally中close() (A)
A 正确 B 错误

11. 记录异常不要保存exception.toString(),而要记录exception.getMessage() (B)
A 正确 B 错误

12. 如果确实有很多异常类型首先考虑用异常描述来区别,throws/exception子句标明的异常最好不要超过5个 (B)
A 正确 B 错误

13. 在 finalize() 方法中一定要调用super.finalize() 方法(A)
A 正确 B 错误

14. 所有的局部变量都需要显示初始化(A)
A 正确 B 错误

15. 在进行比较的时候,总是把常量放在同一边, 可以都放在左边或都放在右边(A)
A 正确 B 错误

16. 应尽量把内部类定义成公有类, 以便外部重用(B)
A 正确 B 错误

17. 在捕获违例的时候,不使用 Exception, RuntimeException, Throwable,尽可能使用它们的子类(A)
A 正确 B 错误

18. 对返回类型为boolean的方法使用 is 开头,其它类型的不能使用(A)
A 正确 B 错误

19. 为所有的 switch 语句提供一个 default 选项(A)
A 正确 B 错误

20. 减小单个方法的复杂度,使用的 if, while, for, switch 语句要在10个以内(A)
A 正确 B 错误
2 二、单选题(每题2分)
21. 如下关于switch语句的使用描述错误的是(B)
A、在switch 中每个 case 语句都应该包含 break 或者 return;
B、switch 语句中可以定义case 之外的无用标签;
C、应该为每个switch语句加一个default;
D、如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释;
22. 如下关于父子类的描述错误的是(D)
A、方法重载的时候,一定要注意方法名相同,避免类中使用两个非常相似的方法名;
B、不要覆盖父类的静态方法和私有方法;
C、不要覆盖父类的属性;
D、父类如果实现了toString(),子类仍然必须重写;
23. 如下关于运算的描述错误的是(B)
A、在运算中不要减小数据的精度;
B、对浮点数可以进行比较运算,如 ==, !=;
C、字符串和数字运算结果相连接的时候,应该把数字运算部分用小括号括起来;
D、对于被除数或者被乘数为2的n次方的乘除运算使用移位运算符>>, <<;
24. 如下关于字符串运算的运算描述错误的是(A)
A、字符串和字符连接使用“+“拼接而非StringBuilder或StringBuffer;
B、常量字符串使用 String, 非常量字符串使用StringBuilder或StringBuffer;
C、单个首字符的比较使用charAt() 而不用startsWith();
D、字符串和数字运算结果相连接的时候,应该把数字运算部分用小括号括起来;
25. 如下关于字符串国际化时使用的描述错误的是(D)
A、国际化时不要使用一个字符进行逻辑操作,使用Characater;
B、国际化时不要进行字符串连接操作,使用MessageFormat;
C、国际化时不要使用Date.toString() ,Time.toString() 方法;
D、国际化时应该使用StringBuffer , StringTokenizer类;
26. 关于servlet的使用描述错误的是(D)
A、servlet使用jdbc后,不再使用JDBC资源时,应该尽早使用 close() 方法释放;
B、不要使用Servlet的SingleThreadModel,会消耗大量资源;
C、不再使用HttpSession时,应该尽早使用 invalidate() 方法释放;
D、servlet的init(ServletConfig)方法中不要调用super.init(ServletConfig);
27. 如下关于类定义和访问的描述错误的是(A)
A、静态成员或者方法应使用句柄访问;
B、不要定义不会被用到的局部变量、类私有属性、类私有方法和方法参数;
C、把内部类定义成私有类;
D、去掉接口中多余的定义(不使用 public, abstract, static, final 等,这是接口中默认的);
28. 关于多线程编程描述错误的是(A)
A、非同步方法中并且没有同步块可以调用 wait() , notify() 方法;
B、避免在同步方法中调用另一个同步方法造成的死锁;
C、线程中需要实现 run() 方法;
D、线程同步中,使用notifyAll() 代替 notify();
29. 如下关于类中方法的定义描述错误的是(A)
A、在构建器中可以使用非 final 方法;
B、在 clone() 方法中应该而且必须使用super.clone() 而不是 new;
C、工具类(Utility)不要定义共有构建器;
D、重载 equals() 方法的同时,也应该重载hashCode() 方法;
30. 如下关于内部类描述错误的是(C)
A、不要使用两级以上的内部类;
B、把内部类定义成私有类;
C、应该经常使用内部类;
D、外部类拥有指向内部类的句柄;
31. 如下关于方法参数的描述错误的是(D)
A、不要对参数进行赋值操作;
B、方法注释的参数个数要和实际个数保持一致;
C、可以通过参数的类型不同进行方法重载;
D、子类可以定义和父类中同名的方法,但返回参数类型不同;
32. 如下关于接口的描述错误的是(D)
A、一个只有abstract方法、final static 属性的类应该定义成接口;
B、去掉接口中多余的定义(不使用 public, abstract, static, final 等,这是接口中默认的);
C、在类中对于没有实现的接口,应该定义成抽象方法,类应该定义成抽象类;
D、不建议对接口进行instanceof运算;
33. 如下关于方法调用描述错误的是(D)
A、不要重复调用一个方法获取对象,使用局部变量重用对象;
B、不要显式调用 finalize();
C、不要在循环体内调用同步方法和使用 try-catch 块。
D、不要在 finalize() 方法中的 finally 中调用super.finalize() 方法;
34. 如下关于类定义描述错误的是(D)
A、不要定义不会被用到的局部变量、类私有属性、类私有方法和方法参数;
B、显式初始化所有的静态属性;
C、不要给非公有类定义 public 构建器;
D、方法的参数名可以和类中的方法名相同;
35. 如下关于final的使用描述错误的是(D)
A、没有子类的友好类应该定义成 final;
B、没有被覆盖的友好方法应该定义成 final;
C、常量必须定义为final;
D、内部类可以访问外部类、方法的非final变量;
36. 如下关于异常的使用描述错误的是(A)
A、不要定义 Error 、RuntimeException、Exception的子类;
B、声明方法违例的时候不要使用 Exception ,应该使用它的子类;
C、不要直接扔出一个Error ,应该扔出它的子类;
D、在捕获违例的时候,不使用 Exception, RuntimeException, Throwable,尽可能使用它们的子类;
37. 如下关于初始化容量设置描述错 误的是(D)
A、使用StringBuffer时设置初始容量;
B、使用ArrayList时设置初始容量;
C、使用Hashmap的时候设置初始容量;
D、使用LinkedList设置初始容量;
38. 如下关于循环描述错误的是(A)
A、使用循环来复制数组;
B、不要在 for 循环体中对计数器进行赋值;
C、不要在循环体内调用同步方法和使用 try-catch 块;
D、不要在循环体内定义变量;
39. 如下关于集合类的描述错误的是(D)
A、含有集合意义的属性命名,尽量包含其复数的意义;
B、使用集合类时要设置初始化容量;
C、尽量不要使用静态集合,其内存占用增长没有边界;
D、集合中的数据不需要释放,垃圾回收器会自动回收;
40. 如下描述不正确的是(D)
A、除了构建器外,不要使用和类名相同的方法名;
B、使用 equals() 比较两个类的值是否相同;
C、不要使用嵌套赋值,即在一个表达式中使用多个 =;
D、重载 equals() 方法时,不必要重载hashCode() 方法;
3 三、多选题(每题3分)
41. 下面关于代码排版的说法正确的有:(AD)
A.for语句中的执行语句无论多少都要加括号{}
B.程序块对齐时为提高效率可以使用Tab键进行对齐,将Tab键设置为占4个字符
C.if条件中的语句如果只有1行,可以与if条件同行书写,使代码更简洁
D.两段逻辑比较独立的代码之间必须加空行

42. 下面哪些代码不符合公司的JAVA编程规范:(ABCDE)
A.
switch ( key )
{
case Log.INFO:
value = getINFOValue();
break;
caseLog.ERROR: value = getErrorValue();
break;
default: value = getDefaultValue();
}
B.
while ( key > 1){
key--;
}
C.
voidexample_fun( Object value )
{
//key 表示呼叫的关键事件
int key = 0; key = getCallEventKey();
}
D.
if ( key >= 0 &&
key<= ServiceConfig.getBlackListSize() )
{
//program code
}
E.
int a ,b ,c;

43. 如下哪些地方应该加上空行:(ABD)
A. import语句与类定义之间
B. 变量说明之后
C. 注释和被注释的代码之间
D. 注释与其上面的无关的代码之间

44. 下面那些关键字与后面的符号(如“(”)之间应添加空格:(ABCD)
A. if
B. for
C. while
D. switch

45. 如下关于操作符的排版说法正确的有:(ABCD)
A. 分号只在后面加空格
B. 双目操作符前后加空格
C. 单目操作符前后不加空格
D. 逻辑操作符前后加空格

46. 如下类属性和类方法的排版顺序正确的有:(AC)
A.
class Sample
{
public String a;
private String b;
}
B.
class Sample
{
private String a;
protected String b;
}
C.
class Sample
{
private String a;
public String mb
{
// CODE...
}
}
D.
class Sample
{
public String a;
public String ma
{
// CODE...
}
private String b;
private String mb
{
// CODE...
}
}

47. 下面关于注释说法不正确的有 :(BD)
A. 所有的包都应该写入一个名为 package.html 的HTML格式的说明文件放入当前路径
B. 文件注释应写入文件头部,包名之后的位置
C. 类注释应该放在package 关键字之后,class 或者 interface 关键字之前
D. 对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,包括RuntimeException

48. 如下注释排版不符合规范的有:(AD)
A.
// 注释
program code 1
program code 2
// 注释
program code 3
B.
public void example( )
{
// 注释
CodeBlock One
}
C.
/**
* 注释内容
*/
private String logType;

/**
* 注释内容
*/
public void write()
D.
//注释
program code 1
program code 2

program code 3
//注释

49. 如下注释符号使用符合规范 的有:(BD)
A.
public static booleanisEmpty(String str)
{
/* 字符串为null或长度为0则认为字符串为空 */
return ((str == null) || (str.trim().length() == 0));
}
B.
/**
* 判断两个字符串是否相等
*
*@param str1待比较字符串1
* @param str2待比较字符串2
* @return 字符串是否相等
*/
public static booleanisEq(String str1, String str2)
{
if (str1 == null)
{
return str2 == null;
}
return str1.equals(str2);
}
C.
// 将long型转换为字符串
public static String valueOf(long l)
{
returnString.valueOf(l);
}
D.
/**
* 用户手机号
*/
private String msisdn;

50. 下面哪些地方必须加注释:(ABCD)
A. 文件头部
B. 变量的定义
C. 接口头部
D. 复杂代码分支处
E. 长表达式的中间

51. 如下类名符合公司规范的有:(CE)
A. getNewSubscriptionList
B. DEBUGLOG
C. OrderResponse
D. FtpDownloadUtil_test
E. UserManager

52. 下面关于命名的说法不正确的有:(BD)
A. 属性名可以和公有方法参数相同,不能和局部变量相同
B. 包名采用域后缀倒置的加上自定义的包名,自定义的包名第一个单词的字母使用小写、剩余单词首字母大写其余字母小写
C. 常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 final static 修饰
D. 引用静态成员变量时可以使用类名引用,也可以使用this引用

53. 下面关于命名的说法正确 的有:(ABCD)
A. 常用组件类的命名以组件名加上组件类型名结尾
B. 如果函数名超过15 个字母,可采用以去掉元音字母的方法或者以行业内约定俗成的缩写方式缩写函数名
C. 准确地确定成员函数的存取控制符号,不是必须使用 public 属性的,请使用 protected,不是必须使用 protected, 请使用 private
D. 含有集合意义的属性命名,尽量包含其复数的意义

54. 如下编码规范说法正确的有:(CD)
A. 明确方法功能,近似地实现方法设计,一个函数仅完成一件功能
B. 仅用一两行就可完成的功能禁止封装成方法
C. 应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口方法本身负责,缺省是由方法调用者负责
D. 数据类不能包含数据处理的逻辑。通信类不能包含显示处理的逻辑。

55. 下面关于异常的说法正确的有: (BCD)
A. 所有的异常都必须被捕获
B. 自己抛出的异常必须要填写详细的描述信息
C. 非运行期异常是从Exception继承而来的,必须在方法声明上加throws子句
D. 对于Error类异常,我们自己的程序不应该捕获这种异常,并且也不应该创建该种类型的异常

56. 如下哪些表达式不符合公司的编程规范:(ABD)
A. a | b && a & c
B. if (result == "True")
C. if (a > (b + c–d))
D. c = a>>4 | b
57. 如下哪些命名应该以小写字母开头:(AB)
A. 方法名
B. 属性名
C. 常量名
D. 类名
E. 接口名

58. 如下代码不符合公司编程规范的有:(ABCD)
A.
if (state == 1)
{
state = 2;
// program code
}
B.
publicintgetIndex()[]
{
// program code
}
C.
try
{
out.print("XXX");
}
catch(IOException e)
{
//... ...
}
finally
{
out.close();
}
D.
String completeReason = "";
for (String reason : reasons)
{
completeReason += reason;
}

59. 如下说法正确的有:(ABCDE)
A. 在switch 中每个 case 语句都应该包含 break 或者 return
B. 不要使用两级以上的内部类
C. 不要覆盖父类的属性
D. 去掉接口中多余的定义(不使用 public, abstract, static, final 等,这是接口中默认的)
E. 不要在if 语句中使用等号= 进行赋值操作

60. 如下建议符合公司规范的有:(ACDE)
A. 为 switch 语句提供一个 default 选项
B. 要使用尽量清晰的表达式,如:if (a.equals(b)==true), 而不是if (a.equals(b))
C. 除了构建器外,不要使用和类名相同的方法名
D. 不要显式导入java.lang.* 包
E. 不要显式调用 finalize()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值