当前位置:文档之家› 编码规范考试

编码规范考试

编码规范考试
编码规范考试

JAVA编码规范试题

一.判断题(共20题 ,每题1分)

1.()equals操作时常量放在equals操作符的左边和右边都可以。 false

2.()函数的逻辑层次不能超过4层。false

3. ()对于switch语句下的case语句,必须在每个case分支结束前加上break 语句。 true

4. ()修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释不要删除。false

5. ()方法内的单行注释使用//。true

6. ()类名和接口使用类意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。true

7. ()方法名使用类意义完整的英文描述:第一个单词的字母使用大写、剩余单词首字母小写其余字母小写的大小写混合法。false

8. ()属性名使用意义完整的英文描述,第一个单词的字母使用小写,剩余单词首字母小写其余字母大写的大小写混合法。属性名不能与方法名相同。false

9.()常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用static final修饰。true

10. ()准确地确定成员函数的存取控制符号:只是该类内部调用的函数使用private 属性,继承类可以使用的使用protected属性,同包类可以调用的使用默认属性(不加属性控制符号),对外公开的函数使用public属性。true

11. ( )系统非正常运行产生的异常捕获后,如果不对该异常进行处理,则应该记录日志。True

12. ( )记录异常不要保存exception. toString (),而要记录exception. getMessage (),一般可通过日志工具记录完整的异常堆栈信息。false

13.( ) interface 中定义的常量不要写public、static、final的修饰词,方法不要写public修饰词。True

14.( )对Debug,Info级别日志输出前不需要对当前的调试等级先进行判断。False

15. ( ) Java 1.4中大量字符串的“相加”操作应该使用StringBuffer。Java 5.0

以上版本大量字符串“相加等于”操作如果不涉及线程安全应该使用StringBuilder,如果有线程安全的要求应该使用StringBuffer。

true

16. ( )涉及物理状态或者含有物理意义的常量,提倡直接使用数字,因为这些是众所知之的,没有必要再进行常量的定义。 false

17. ( )数据库操作、IO操作等需要使用结束close()的对象必须在try

-catch-finally 的catch中close()。 false

18.( )数据库操作、IO操作等需要使用结束close()的对象必须在try

-catch-finally 的finally中close()。 true

19.( )数组声明的时候使用 int index[],而不要使用 int[] index。false

20.( )所有的数据类必须重载toString() 方法,返回该类有意义的内容。true

答案:

1、(×)

2、(×)

3、(√)

4、(×)

5、(√)

6、(√)

7、(×)

8、(×)

9、(√) 10、(√)11、(√) 12.(×) 13.(√) 14.(×) 15.(√)

16.(×) 17.(×) 18.(√) 19.(×) 20.(√)

二.单选题(共50题 ,每题1分)

1.关于程序块的缩进,描述正确的是 b

A.缩进的空格数为2个

B.缩进的空格数为4个

C.缩进的空格数为8个

D.缩进的空格数为一个Tab占位符

2.关于代码的缩进,描述正确的是 c

A. for (...) {

... // program code

}

B. if (...) {

... // program code

}

C. void example_fun( void )

{

... // program code

}

D.if(...){

return ...

}

else{

return ...

}

3.较长的语句、表达式或参数要分成多行书写,描述错误的是 d

A.每行步超过80个字符

B.长表达式要在低优先级操作符处划分新行

C.划分出的新行要进行适当的缩进

D.操作符放在上一行之尾

4.以下选项中,符合编码规范的是 a

A. if (filename != null

&& new File(logPath + filename).length() < LogConfig.getFileSize()) {

... // program code

}

B.if (filename != null &&

new File(logPath + filename).length() < LogConfig.getFileSize()) {

... // program code

}

C. if (filename != null &&

new File(logPath + filename).length() <

LogConfig.getFileSize())

{

... // program code

}

D. if (filename != null && new File(logPath + filename).length()

< LogConfig.getFileSize())

{

... // program code

}

5.以下选项中,符合编码规范的是 d

A.if(writeToFile) writeFileThread.interrupt();

B.if(writeToFile)

writeFileThread.interrupt();

C.if(writeToFile){

writeFileThread.interrupt();

}

D.if(writeToFile)

{

writeFileThread.interrupt();

}

6.以下选项中,不符合编码规范的是 c

A. if (a >= b && c > d)

B. p.id = pid;

C. flag = !isEmpty;

i ++;

D. int a, b, c;

7.以下选项中,符合编码规范的是 b

A. if (current_time >= MAX_TIME_VALUE)

a =

b + c;

a *= 2;

a =

b ^ 2;

B. if (current_time >= MAX_TIME_VALUE)

a =

b + c;

a *= 2;

a =

b ^ 2;

C.if (current_time >= MAX_TIME_VALUE)

{

a =

b + c;

}

a *= 2;

a =

b ^ 2;

D. if (current_time >= MAX_TIME_VALUE)

a =

b + c;

a *= 2;

a =

b ^ 2;

8.关于代码中的注释,描述正确的是 c

A.源程序有效注释量必须在10%以上

B.源程序有效注释量必须在20%以上

C.源程序有效注释量必须在30%以上

D.源程序有效注释量必须在40%以上

9.对于注释规范,描述正确的是 a

A.避免在注释中使用缩写,特别是不常用缩写。

B.在注释量较多时,为了避免注释量太多,建议多使用一些缩写,以使得注释简洁些,避免冗长

C.对于注释中的缩写,建议不需要解释,因为这些缩写的含义,都应该知道

D.对于注释中的缩写,为了避免理解错误,建议都需要进行说明

10.对于注释的描述正确的是 c

A.注释的内容要相对清楚、明了,含义相对准确,减少注释二义性。

B.对于错误的注释,需要根据项目时间,进行适当的修改和调整

C.错误的注释不但无益反而有害,必须删除

D对于修改代码后不再有用的注释,为了保证修改记录可见,避免可能出现的问题,不能删除。

11.对于注释的描述正确的是 a

A.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。

B.可以在代码写完后集中增加注释,这样的注释能够从整体把握,减少修改代码就必须修改注释而产生的工作量

C.对于修改代码后不再有用的注释,为了保证修改记录可见,避免可能出现的问题,不能删除。

D.对于修改后的代码与注释不一致的情况,需要尽量减少,当时间紧张时以代码为主,注释为辅

12.对于注释的描述正确的是 d

A.对于变量的定义,一般情况下不需要注释

B.条件分之因为比较简单,一般不需要注释

C.循环分之可以根据实际情况,可以增加注释,也可以不加,根据注释量确定

D.对变量的定义,条件分之,循环分之必须编写注释

13.关于switch语句的使用,描述正确的是 a

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

B.对于switch语句下的case语句,如果因为特殊情况需要处理完一个case 后进入下一个case处理,必须在该case语句之前就加上明确的注释。

C.对于switch语句下的case语句,如果因为特殊情况需要处理完一个case 后进入下一个case处理,如果很简单,可以不加注释

D.尽量避免使用switch语句,建议使用嵌套的if语句代替switch

14. 下列选项中,描述正确的是 b

A.//注释code one

program code one

//注释code two

program code two

B. //注释code one

program code one

//注释code two

program code two

C. program code one

//注释code one

program code two

//注释code two

D. program code one

//注释code one

program code two

//注释code two

15.下列选项中,描述正确的是 d

A.注释的原则是满足对注释量的要求。注释多了没有问题,但是一定不能少。

B.在注释量达不到要求时,可以增加一些意义相对不大的注释。

C.对于注释,可以存在二义性,但是越少越好。

D.注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。

16.关于包的注释,描述不正确的是 d

A.包的注释写入一个名为 package.html 的HTML格式的说明文件放入当前路径。

B.简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权。

C.在详细描述中应该说明这个包的作用以及在整个项目中的位置。

D.包的注释中需要简述本包的作用就可以了,其他的信息根据需要进行补充。

17.关于文件的注释,描述不正确的是 c

A.文件注释写入文件头部,包名之前的位置。

B.文件注释包括版权说明、描述信息、生成日期、修改历史。

C.文件注释中的文件名必须。

D.每次修改后在文件头部写明修改信息。

18.关于类和接口的注释,描述不正确的是 d

A.该注释放在 package 关键字之后,class 或者 interface 关键字之前。

B.类的注释主要是一句话功能简述、功能详细描述。

C.可根据需要列出:版本号、生成日期、作者、内容、功能、与其它类的关系等。如果一个类存在Bug,请如实说明这些Bug。

D.每次修改后,不需要增加作者和更新版本号和日期。

19.下列选项中,描述不正确的是 d

A.类属性和公有方法的注释写在类属性、公有和保护方法上面。

B.成员变量的注释包括成员变量的意义、目的、功能,可能被用到的地方。

C.公有方法的注释列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、违例等。

D.对于私有方法,因为只有本类适用,因此不需要增加注释。

20.下列选项中,描述不正确的是 c

A. 对于方法内部用throw语句抛出的异常,必须在方法的注释中标明。

B.对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。

C.对于所调用的其他方法所抛出的异常,必须将所有的异常在注释中说明。

D. 对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。

21.关于包的命名,不正确的是 c

A.包名采用域后缀倒置的加上自定义的包名,采用小写字母。

B.在部门内部应该规划好包名的范围,防止产生冲突。

C.为了避免限制研发人员的创造性,不需要对包名进行规划,有研发人员自己确定即可。

D.部门内部产品使用部门的名称加上模块名称。产品线的产品使用产品的名称加上模块的名称。

22.关于命名,描述不正确的是 d

A.类名和接口使用类意义完整的英文描述。

B.类名和接口的命名采用每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。

C.方法名使用方法意义完整的英文描述

D.方法名采用第一个单词的字母使用大写、剩余单词首字母大写其余字母小写的大小写混合法。

23.下列选项中,描述不正确的是 b

A.方法中,存取属性的方法采用setter 和 getter方法.

B.方法中,存取属性的方法可以不采用setter 和 getter方法,只需要通过注释进行说明。

C.方法名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。

D.动作方法采用动词和动宾结构。

24.下列选项中,描述不正确的是 d

A.属性名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。

B.常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用final static 修饰。

C.属性名不能与方法名相同。

D.属性名可以与方法名相同。

25.下列选项中,描述不正确的是 c

A.属性名可以和公有方法参数相同。

B.属性名不能和局部变量相同。

C.属性名可以和局部变量相同。

D.引用非静态成员变量时使用

this 引用,引用静态成员变量时使用类名引用。

26.下列选项中,关于编码规范的描述正确的是 b

A.大致确定方法功能,近似地实现方法设计。

B.一个函数仅完成一件功能,即使简单功能也应该编写方法实现。

C.仅用一两行就可完成的功能去编方法没有必要。

D.对于简单的功能,可以在一个方法中实现多个功能。

27.关于接口方法参数的合法性检查,描述不正确的是 d

A.应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口方法本身负责,

B.参数的合法性检查缺省是由方法调用者负责。

C.调用者和被调用者均对参数进行合法性检查。

D.调用者和被调用者均不对参数进行合法性检查。

28.关于类的设计,描述不正确的是 c

A.明确类的功能,精确(而不是近似)地实现类的设计。一个类仅实现一组相近的功能。

B.划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的单一性。

C.数据类可以包含数据处理的逻辑。

D.通信类不能包含显示处理的逻辑。

29.下列选项中,描述不正确的是 b

A.所有的数据类必须重载toString() 方法。

B.对于比较简单的数据类,不需要重载toString()方法。

C.父类如果实现了比较合理的toString() ,子类可以继承不必再重写。

D.数据类的toString()方法返回该类有意义的内容。

30.下列选项中,关于异常的处理,描述不正确的是 d

A.数据库操作、IO操作等需要使用结束close()的对象必须在try

-catch-finally 的finally中close()。

B.异常捕获后,如果不对该异常进行处理,则应该纪录日志或者

ex.printStackTrace() 。

C.若有特殊原因不对该异常进行处理,必须用注释加以说明。

D.自己抛出的异常不要填写详细的描述信息。

31.下列选项中,描述不正确的是 a

A.在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,其中异常和错误码可以混合使用。

B.在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。

C. 一个系统或者模块应该统一规划异常类型和返回码的含义。

D.不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。

32.下列选项中,描述不正确的是 c

A.避免使用不易理解的数字,用有意义的标识来替代。

B.涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的静态变量来代替。

C.对于一些数字可以直接适用,不需要用有意义的标识来替代。

D.数组声明的时候使用 int[] index ,而不要使用 int index[] 。

33.下述各项中,符合编码规范的描述的项是 d

A.即使是不易理解的数字,只要开发人员已经达成了一致意见,也可以在代码中直接使用。

B.涉及物理状态或者含有物理意义的常量,因为是众所周知的,因此可以直接使用数字,没有必要再用有意义的静态变量来代替。

C.对于数字的表示,只要开发人员达成一致,就没有必要强制要求。

D.避免使用不易理解的数字,用有意义的标识来替代。

34.Java源文件中,关于包和import的描述不正确的是 b

A.某些情况下,Java源文件可以不包含包语句。

B.Java源文件中,第一个非注释行必须是包语句.

C.某些情况下,Java源文件中可以不包含引入语句。

D.Java源文件中,通常第一个非注释行是包语句。在它之后可以跟引入语句.

35.关于变量的初始化,描述正确的是 d

A.对于变量的初始化,在编码过程中可以不强制要求,只要不产生空指针即可。

B.对于特定类型的变量,如String,int,不需要进行初始化。

C.变量应该在使用时再初始化。

D.尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。

36.关于方法命名,下面那句话是正确的 c

A.除了构建器外,定义和类名相同的方法名会产生编译错误。

B.如果没有定义构建器,那么可以定义和类名相同的方法名。

C.定义和类名相同的方法名不会产生错误,只是有时候容易混淆。

D.定义和类名相同的方法名不会有任何问题。

37.下列选项中,对命名规范描述正确的是 a

A.类、接口名的单词首字母应该大写

B.包名单词的首字母应该大写。

C.方法名的单词首字母应该大写。

D.变量名的单词首字母应该大写。

38.当一个表达式长度超出一行内时,下面那一个不是进行换行的规则 c

A.在一个逗号后面断开。

B.在一个操作符前面断开。

C.选择较低级别(lower-level)的断开,而非较高级别(higher-level)的断开。

D.新的一行应该与上一行同一级别表达式的开头处对齐

39.下列各项中不符合编码规范的是 a

A.argv++; argc--;

B.argv++;argc--;

C.argv++;--argc;

D.argv++;--argc;

40.调试代码,增加打印信息,应该使用 d

A. System.out。

B. System.err。

C. 包含统一开关的测试类进行统一打印

D. 其他都不是。

41.下述各项中,关于变量的声明错误的是 c

A.推荐一行一个声明,因为这样以利于写注释。亦即,

int level; // indentation level

int size; // size of table

B.不要将不同类型变量的声明放在同一行,例如:

int foo, fooarray[]; //WRONG!

C.如果需要声明的变量较少,提倡将这些变量放在同一行。如

int leve, int size;

D.变量声明语句中,在类型和标识符之间放了一个空格,另一种被允许的替代方式是使用制表符:

int level; // indentation level

int size; // size of table

Object currentEntry; // currently selected table entry

42.下述各项中,符合编码规范的是 a

A. for (...)

{

... // program code

}

B. for (...)

{

... // program code

}

C. for (...) {

... // program code

}

D. for (...)

{

... // program code

}

43.下述各项中,不符合编码规范的是 c

A.在switch 中每个 case 语句都应该包含 break 或者 return 。

B.不要使用空的for 、if 、while 语句。

C.静态属性的初始化不需要显式初始化。

D.在运算中不要减小数据的精度。

44.下述选项中,关于异常的描述错误的是 c

A.数据库操作、IO操作等需要使用结束close()的对象必须在try

-catch-finally 的finally中close()。

B.异常捕获后,如果不对该异常进行处理,则应该纪录日志或者

ex.printStackTrace() 。

C.异常捕获后,如果不对该异常进行处理,直接忽略即可。

D.自己抛出的异常必须要填写详细的描述信息。

45.关于方法的设计,描述正确的是 d

A.明确方法功能,精确地实现方法设计。

B.一个方法仅完成一件功能,即使简单功能也应该编写方法实现。

C.仅用一两行就可完成的功能去编方法好象没有必要,但用方法可使功能明确化,增加程序可读性,亦可方便维护、测试。

D.明确方法功能,近似地实现方法设计。

46.关于类的设计,描述错误的是 d

A.应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口方法本身负责。

B. 明确类的功能,精确(而不是近似)地实现类的设计。

C.所有的数据类必须重载toString() 方法,返回该类有意义的内容。

D.一个类可以包含很多功能,而不仅仅是一组相近的功能。

47.下述个项中,符合编码规范的是 a

A.if(log.getLevel() < LogConfig.getRecordLevel())

{

return;

}

LogWriter writer;

int index;

Bif(log.getLevel() < LogConfig.getRecordLevel())

{

return;

}

LogWriter writer;

int index;

C. if(log.getLevel() < LogConfig.getRecordLevel())

{

return;

}

LogWriter writer;

int index;

D. if(log.getLevel() < LogConfig.getRecordLevel())

{

return;

}

LogWriter writer; int index;

48. 下述个项中,符合编码规范的是d

A. if(writeToFile) writeFileThread.interrupt();

B. if(writeToFile){ writeFileThread.interrupt();}

C. if(writeToFile){

writeFileThread.interrupt();

}

D. if(writeToFile)

{

writeFileThread.interrupt();

}

49. 下列选项中,关于方法的命名不正确的是d

A. public String getType();

B. public boolean isFinished();

C. public void show();

D. public void AddKeyListener(Listener);

50. 下列选项中,不符合编码规范的是d

A. try

{

//.... ...

}

catch (IOException ioe)

{

ioe.printStackTrace ();

}

B. throw new IOException("Writing data error! Data: " + data.toString());

C. try

{

// ... ...

}

catch(IOException ioe)

{

//... ...

}

finally

{

try

{

out.close();

}

catch (IOException ioe)

{

//... ...

}

}

D. try

{

// ... ...

}

catch(IOException ioe)

{

//... ...

}

答案:

1.B

2.C

3.D

4.A

5.D

6.C

7.B

8.C

9.A 10.C

11.A 12.D 13.A 14.B 15.D

16.D 17.C 18.D 19.D 20.C

21.C 22.D 23.B 24. D 25. C

26.B 27.D 28.C 29.B 30.D

31.A 32.C 33.D 34.B 35.D

36.C 37.A 38.C 39.A 40.D

41.C 42.A 43.C 44.C 45.D

46.D 47.A 48.D 49.D 50.D

三.多选题(共10题,每题2分)

1.下述各项中,符合编码规范的是 ab

A.分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。

B.较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

C.建议把多个短语句写在一行中,便于阅读

D.if, for, do, while等语句的执行语句如果只有一行的话,不需要要加括号{}。

2.下述各项中,不符合编码规范的是 ab

A.相对独立的程序块之间、变量说明之后可以不加空行。

B.对齐只使用空格键,对于在工具中,可以使用TAB键。

B.在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;

D.if, for, do, while, case, switch, default 等语句自占一行。

3.下述各项的代码中,符合编码规范的是 cd

A. for (...) {

... // program code

}

B. void example_fun( void )

{

... // program code

}

C. if (filename != null

&& new File(logPath + filename).length() < LogConfig.getFileSize()) {

... // program code

}

D.LogFilename now = null;

LogFilename that = null;

4.下述各项的代码中,符合编码规范的是 bd

A.if(writeToFile) writeFileThread.interrupt();

B.if(writeToFile)

{

writeFileThread.interrupt();

}

C.if(log.getLevel() < LogConfig.getRecordLevel())

{

return;

}

LogWriter writer;

D.if(log.getLevel() < LogConfig.getRecordLevel())

{

return;

}

LogWriter writer;

int index;

5.下述各项中,不符合编码规范的是 ac

A. int a, b, c;

B.flag=! isEmpty; i ++;

C.if (current_time >= MAX_TIME_VALUE)

D.p . id=pid;

6.下述各项中,关于注释的描述正确的是 ad

A.注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置。

B.注释也可放在下面,如放于上方则需与其上面的代码用空行隔开。

C.注释与所描述内容可以不采用同样的缩排。

D.将注释与其上面的代码用空行隔开。

7.下述各项中,关于注释的描述错误的是 ac

A.对简单的变量的定义和分支语句(条件分支、循环语句等)可以不编写注释。

B.对于switch语句下的case语句,如果因为特殊情况需要处理完一个case

后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。

C.建议在代码写作完成后,统一添加注释。

D.注释的内容要清楚、明了,含义准确,防止注释二义性.

8.下述选项中,关于命名描述正确的是 ac

A.包名采用域后缀倒置的加上自定义的包名,采用小写字母。

B.包名可以根据需要自己定义即可,采用小写字母。

C.类名和接口使用类意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。

D.类名和接口使用类意义完整的英文描述,第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。

9.下述选项中,关于类的设计描述不正确的是 bd

A.明确类的功能,精确(而不是近似)地实现类的设计。

B.一个类可以实现多组相近的功能。

C.所有的数据类必须重载toString() 方法,返回该类有意义的内容。

D.接口方法参数应由调用者和被调用者均对参数进行合法性检查。

10.下述选项中,关于异常的处理描述正确的是 ab

A.数据库操作、IO操作等需要使用结束close()的对象必须在try

-catch-finally 的finally中close()。

B.异常捕获后,如果不对该异常进行处理,则应该纪录日志或者

ex.printStackTrace() 。

C.自己抛出的异常不需要填写详细的描述信息。

D.运行期异常使用RuntimeException的子类来表示,必须在可能抛出异常的方法声明上加throws子句。非运行期异常是从Exception继承而来的,不用在方法声明上加throws子句。

答案

1.AB

2.AB

3.CD

4.BD

5.AC

6.AD

7.AC 8.AC

9.BD 10.AB

四.改错题(共2题,每题5分)

第一题

/**

*delExpImpLog

*

*@param request

*request

*@param indexes

*indexes

*@param operateLog operateLog

*

*/

[邵洪岗1]public void delExpImpLog(HttpServletRequest request, Integer[] indexes, OperateLog operateLog[邵洪岗2])[邵洪岗3]

{

// 初始化返回结果码

portalOperLog =

(PortalOperLog)BeanMaker.getBean("portalOperLog");

// 初始化删除失败记录数

int errorCount = 0;

ExpImpLog expImpLog = null;

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

{

Integer index = indexes[i];

try

{

expImpLog = expImpDao.findByInnerIndex(index);

if (null == expImpLog)

{

// 写操作失败日志

portalOperLog.logDeleteFail(request,"expImpLog deleted ","by others",operateLog);

continue;

}

// 删除导入日志

expImpDao.delOneEcInfo(expImpLog);

File file = new File(expImpLog.getErrorFile());

if ("1577"[邵洪岗4].equals(request.getStateCode()) && file.exists())[邵洪岗5]

{

if (file.delete())

{

https://www.doczj.com/doc/a713141883.html,("delete file success: fileName =" + expImpLog.getErrorFile());

}

}

else

{

runLog.error("delete file fail: fileName =" + expImpLog.getErrorFile()

+ " ErrorMessage : file not exist");

//删除失败,失败记录加1

errorCount++;

}

// 记录操作结果日志

portalOperLog.logDeleteSucc(request, expImpLog, "delete expImpLog success", operateLog);

}

catch (Exception e)[邵洪岗6]

{

runLog.error("delete expImpLog fail! innerIndex="+ index, e);

// 删除失败,失败记录加1

errorCount++;

}

}

portalResult.setDelErrorNum(errorCount);

}

}

第二题

/**

*获取通知地址分发消息。

*@author wangxiaoya

*@date2010-7-19

*/ public void cycleInfo()

{

String Str [] = null;[邵洪岗7]

//获取各个部件的通知地址

Str = outNotify.getResult();

StringBuffer b = null;[邵洪岗8]

BufferedReader in = null;

Connection conn = null;

APLResultSet rs = null;

String sql= "";

File file = null;

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

{

if( null != Str)[邵洪岗9]

{

log.log(Priority.DEBUG, " Str not null");

}

conn = DB.getConnection();[邵洪岗10]

try[邵洪岗11]

{

in = new BufferedReader(new FileReader(file));[邵洪岗12] b = new StringBuffer();

}

catch [邵洪岗13](IOException ex)

{

Throw ex;

}

}

}

}

阿里巴巴编码规范题库

1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和识别。 多选2.关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 B .同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。 C .创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。 D .推荐使用Executors.newFixedThreadPool(int x)生成指定大小的线程池。(线程池不允许使用Executors 去创建,而是通过ThreadPoolExecutor 的方式) 多选3.下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由。 D .不要在视图模板中加入任何复杂的逻辑。 多选4.关于分页查询,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .分页查询,当统计的count为0时,应该直接返回,不要再执行分页查询语句。 B .iBATIS自带的queryForList(String statementName,int start,int size)分页接口有性能隐患,不允许使用。 C .定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑。 D .可使用存储过程写分页逻辑,提高效率。 多选5.根据《阿里巴巴Java开发手册》,以下功能必须进行水平权限控制校验的有:ABCD A .订单详情页面。 B .类目管理后台。 C .店铺装修后台。 D .订单付款页面 多选1.关于多线程并行处理定时任务的情况,下列哪些说法符合《阿里巴巴Java开发手册》:BCD A .推荐使用Timer方式处理。 B .推荐使用ScheduledExecutorService方式处理。 C .Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行。 D .ScheduledExecutorService并发运行多个定时任务时,其中某线程抛出异常,不会影响到其它线程的继续运行。

华为JAVA编码规范

1.程序块采用缩进风格,空格为4个. 说明: 对于开发工具自动生成的代码可以不一致 2.分界符(如大括号{和})应各自占一行并且在同一列,同时与引用它们的 语句左对齐,在方法的开始,类和接口的定义,以及if,for,do,while,switch,case语句都要采用上述缩进 说明: for(…) { … 说明: if(filename != null && new File(logPath+filename).length() < ()) { 3.…作符) 说明: 采用这种松散方式编写代码目的是让程序更加清晰,由于空格所产生的清晰性是相对的,所以在已经很清晰的语句中没有必要留空格,如果语句已足够清晰,则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为java中括号已经是很清晰的标志了. 在长句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部

中不加空格,给操作符留空格时不要连续留两个以上空格 4.类属性和方法不要交叉放置,不同存取范围的属性和方法也不要交叉放 置 说明: 类定义:{ 类公有属性定义; 类保护属性定义; 类私有属性定义; 类公有方法定义; 类保护方法定义; 类私有方法定义; } 5.源程序的有效注释量必须在30%以上 6.包的注释写入一个名为的html格式的说明文件放入当前路径 7.包的注释内容:本包作用,详细描述本包内容,产品模块名称及版本,公 司版本 说明: 一句话描述 详细描述

产品模块
公司版本信息 8.文件注释:写入文件头部,包名之前 9.文件注释内容:版本说明,描述信息,修改历史,生成日期 说明: /* *文件名 *版权 *描述 *修改人 *修改时间 *修改内容 *跟踪单号 *修改单号 */ 10.类和接口注释:放在package注释之后,class或interface之前 11.类和接口注释内容:类的注释要一句话功能描述,功能详细描述 说明:

(整理)06 中国移动网络代维管理系统技术规范 编码规范分册V1.1.

中国移动通信企业标准 中国移动网络代维管理系统技术规范 编码规范分册 版本号:1.1.0 2012年9月发布2012年9月实施 中国移动通信集团公司

目录 1 编号规范 (2) 1.1 省级代维组织编号 (2) 1.2 地市级以下代维组织编号 (2) 1.3 人员编码 (2) 1.4 工单编号 (2) 1.5 公告编号 (2) 1.6 业务联系函编号 (2) 1.7 代维资料编号 (3) 2 编码规范 (3) 2.1 省份代码 (3) 2.2 地市 (4) 2.3 工作类别 (5) 2.4 代维专业类型 (6) 2.5 紧急程度 (6) 2.6 满意度 (6) 3 修订记录 (6)

前言 《中国移动网络代维管理系统技术规范》规定了中国移动网络代维管理系统的建设目标、建设原则、体系结构、功能结构、接口要求、技术要求,供中国移动内部和系统开发、集成厂商共同使用;是中国移动网络代维管理系统建设所依据的技术规范,用于指导全网代维管理IT化手段建设、开发与应用。 本分册是《中国移动网络代维管理系统技术规范》系列分册之一。《中国移动网络代维管理系统技术规范》系列分册的结构、名称如下: 本规范由中国移动通信集团公司网络部制订,由集团公司网络部归口和解释。 本规范起草单位:中国移动通信集团公司网络部。 本规范主要起草人:王晓琦、石晓萍、王烨、周林、夏凡超、王鹏、徐智岳、杜传业、马松、吴丹、贺军、云雅琼、杜珍祥、童克波、吕晓敏、周云斌、陈为国、陆旻、许贤、周敏、郭艺娴、赵珺、陈宏宇、于洪亮、吕敏、徐铁瑛、诸圣勇、谭凌凯、文晓林、唐继志、霍廷瑞、杨竹。

1 编号规范 1.1省级代维组织编号 DW+3位自增序号,如:DW001;建议加移动标识,如:CMJSDW001、CMZJDW001 1.2地市级以下代维组织编号 以江苏为例,5级组织结构进行参考,如下: 办事处:上级组织编号+所属地市编码+2位自增序号,如:DW0011401 项目部:上级组织编号+ 2位自增序号,如:DW001140101 驻点:上级组织编号+ 2位自增序号,如:DW00114010101 小组:上级组织编码+3位自增序号,如:DW00114010101001 1.3人员编码 DW+12位人员编码,关于代维人员编码规则(共计12位数字)如下: 1-3位代维公司编码; 4-5位地市编码; 6-9位代维人员加入系统年月,如0902; 10-13位代表入职代维公司的第几个员工。从0001开始的4位自增序号。 1.4工单编号 1.5公告编号 1.6业务联系函编号

华为JAVA编程规范

1 Java 编程规范 1.1 排版 1.1.1 规则 规则1程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。(1.42+) 说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。 规则2分界符(如大括号…{?和…}?)应各独占一行,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序 或者static、,synchronized等语句块中都要采用如上的缩进方式。(1.42+) 示例: if (a>b) { doStart(); } 规则3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐, 语句可读。(1.42+) 示例: if (logger.isDebugEnabled()) { logger.debug("Session destroyed,call-id" + event.getSession().getCallId()); } 规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+) 说明:阅读代码更加清晰 示例:如下例子不符合规范。 Object o = new Object(); Object b = null; 规则5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。 (1.42+) 说明:阅读代码更加清晰,减少错误产生 示例: if (a>b) { doStart(); }

华为Java语言编码规范标准

Java语言编码规范 Prepared by 拟制Date 日期 yyyy-mm-dd Reviewed by 评审人Date 日期 yyyy-mm-dd Approved by 批准Date 日期 yyyy-mm-dd

Revision Record 修订记录

Table of Contents 目录 1. 范围 (4) 2. 规范性引用文件 (4) 3. 术语和定义 (4) 4. 排版规范 (5) 4.1. 规则 (5) 4.2. 建议 (7) 5. 注释规范 (9) 5.1. 规则 (9) 5.2. 建议 (15) 6. 命名规范 (17) 6.1. 规则 (17) 6.2. 建议 (18) 7. 编码规范 (20) 7.1. 规则 (20) 7.2. 建议 (24) 8. JTEST规范 (26) 8.1. 规则 (26) 8.2. 建议 (27)

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。

【经典范例】集团员工工号编码规则

1、总则 1.1制定目的 ?对员工工号进行有效的管理 ?方便直观了解及统计员工的相关资讯 ?在应用系统(包括人力资源软件系统等)中对员工进行有效的识别 1.2适用范围 广东时利和汽车实业集团下属各全资公司、合资公司、DRL店、快修店 1.3管理单位 本制度之解释、修改权归集团人力资源部。 1.4员工编码在集团内部各类文件的称呼统一为“工号” 2、编码规则 2.1员工编码由八位数字组成,排列顺序如下: 公司编码+ 个人流水码+ 入职年度号码 (如下) (三位) (二位) 2.2公司编码(新增公司:另行文件通知) 2.2.1特约店编码说明: TNA=时利和(T)+佛山南海(N)+ACURA品牌店(A) 其中地方编码说明: 佛山-F 佛山南海-N 吉林市-J 吉林长春-C 广州-G

2.2.2集团下属公司/车间编码说明: 示例1:时利和集团(T)+总部(G) 示例2:时利和集团(T)+总部(G)+下属车间盛世达车间(S) 示例3:时利和集团(T)+分公司佛山依多科化工有限公司(E) 2.3个人流水码 (1)根据入职年度内,集团及二级单位员工入职的先后序号进行排列; (2)现有(自本规定公布之日前在职的员工)员工由公司人力资源部门依同年度内入职的先后顺序排定; (3)新入职员工(自本规定公布之日后入职的员工)依本年度顺序所排定的编码排列取号; (4)员工调动、离职时依新任单位重新编定。原号吗要相关的表格文件中进行备注。 2.4入职年度号码 (1)取入职年度后两位数字为号码,如2008年入职,则入职年度号为08; (2)员工调动、离职时年度号码不变; 3、员工的异动 3.1员工在集团内进行调动,员工后二位年度编码不变,前面编码根据调动后情况由 被调入单位人事行政部门编定,原单位及人力资源部应保留原工号; 3.2员工离职后个人编码空缺,不进行补缺及重复使用; 3.3离职再复职人员重新排号; 4、附则 (1)本程序经集团总经理核准后公告实施,修、废时亦同。 (2)本程序只限于员工编吗,亦为工号编制程序文件,在确保本单位员工工号唯一性的前提下各单位可根据实际情况另行进行档案管理。 (3)本程序公告日期为2008年5月1日。 例:TG 00108:表示2008年集团总部第一位入职的员工

(完整版)阿里巴巴编码规范(Java)题库

多选 1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和识别。 多选 2.关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 B .同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。 C .创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。 D .推荐使用Executors.newFixedThreadPool(int x)生成指定大小的线程池。(线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式) 多选 3.下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由。 D .不要在视图模板中加入任何复杂的逻辑。 多选 4.关于分页查询,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .分页查询,当统计的count为0时,应该直接返回,不要再执行分页查询语句。 B .iBATIS自带的queryForList(String statementName,int start,int size)分页接口有性能隐患,不允许使用。 C .定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑。 D .可使用存储过程写分页逻辑,提高效率。

【Java编码规范】《阿里巴巴Java开发手册(正式版)》更新(v1.1.1版)

【Java编码规范】《阿里巴巴Java开发手册(正式版)》更新(v1.1.1版) 本文章来自于阿里云云栖社区 摘要:阿里巴巴集团推出的《阿里巴巴Java开发手册(正式版)》是阿里巴巴近万名开发同学集体智慧的结晶,以开发视角为中心,详细列举如何开发更加高效、更加容错、更加有协作性,力求知其然,更知其不然,结合正反例,让Jav a开发者能够提升协作效率、提高代码质量。 2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。 点击下载《阿里巴巴Java开发手册》(v1.1.1版): https://https://www.doczj.com/doc/a713141883.html,/attachment/download/?id=1492 v1.1.1版更新说明:修正页码总数和部分示例。 (版本不断更新中,请收藏本文,以免错过重要更新)

(点击参与话题讨论:Java开发者们,一起来聊聊大家的开发规约吧) (原文链接: https://https://www.doczj.com/doc/a713141883.html,/roundtable/47961?spm=5176.100239.blogcont69327.8.f VLfld) 你是否曾因Java代码规范版本纷杂而无所适从? 你是否想过代码规范能将系统故障率降低20%? 你是否曾因团队代码风格迥异而协同困难? 你是否正在review一些原本可以避免的故障? 你是否无法确定自己的代码足够健壮? 码出高效,码出质量!

相比C++代码规范业界已经达成共识,Java代码规范业界比较混乱,我们期待这次发布的Java代码规范能够给业界带来一个标准,促使整体行业代码规范水平得到提高,最终能够帮助企业和开发者提升代码质量和降低代码故障率。 阿里出品,质量保证! 阿里Java技术团队一手打造出Dubbo、JStorm、Fastjson等诸多流行开源框架,部分已成为Apache基金会孵化项目; 阿里在Java后端领域支撑起全球访问量最大的服务器集群; Java代码构建的阿里双11业务系统订单处理能力达到17.5万笔/秒; 到目前已累计数亿行高并发、高稳定性的最佳Java代码实践; …… 此次首度公开的Java开发手册正是出自这样的团队,近万名阿里Java技术精英的经验总结,并经历了多次大规模一线实战检验及完善,铸就了这本高含金量的阿里Java开发手册。该手册以Java开发者为中心视角,划分为编程规约、异常日志规约、MYSQL规约、工程规约、安全规约五大块,再根据内容特征,细分成若干二级子目录。根据约束力强弱和故障敏感性,规约依次分为强制、推荐、参考三大类。此套规范不仅能让代码一目了然,更有助于加强团队分工与合作、真正提升效率。

java编码规范(建议稿,修改自华为规范)(1)解析

武汉中软卓越科技有限公司Java语言编码规范

Table of Contents 目录 1. 范围 (3) 2. 术语和定义 (3) 3. 排版规范 (4) 3.1. 规则 (4) 3.2. 建议 (6) 4. 注释规范 (7) 4.1. 规则 (7) 4.2. 建议 (12) 5. 命名规范 (14) 5.1. 规则 (14) 5.2. 建议 (15) 6. 编码规范 (17) 6.1. 规则 (17) 6.2. 建议 (20) 7. JTEST规范 (22) 7.1. 规则 (22) 7.2. 建议 (23)

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTest的规则和建议。 本规范适用于使用Java语言编程的案例、产品和项目。 2.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。

3.排版规范 3.1.规则 3.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 3.1.2.*语句块分隔符左括号‘{’应与语句块引用代码在同一行,右括号‘}’应另起一行并 与语句块引用代码左对齐。在函数体的开始、类和接口的定义、以及if、for、do、 while、switch、case语句中的程序都要采用如上的缩进方式。 示例:如下例子不符合规范。 for (...) { ... // program code } if (...) { ... // program code } void example_fun( void ) { ... // program code } 应如下书写: for (...){ ... // program code } if (...){ ... // program code } void example_fun( void ){ ... // program code } 3.1.3.*较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作 符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 示例: if (filename != null && new File(logPath + filename).length() < LogConfig.getFileSize()){ ... // program code } public static LogIterator read(String logType, Date startTime, Date endTime, int logLevel, String userName, int bufferNum) 3.1.4.*不允许把多个短语句写在一行中,即一行只写一条语句

华为JAVA编程规范试题

JAVA编程规范试题 一、判断题(每题2分,共28分) 1、if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while, switch, case等语句的执行语句无论多少都要加括号{}。 2、包的注释内容要求包括:简述本包的作用、详细描述本包的内容、产品模块 名称和版本、公司版权、生成日期等。 3、类注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事 项,每次修改后增加作者、新版本号和当天的日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。4、对于方法内部用throw语句抛出的异常,必须在方法的注释中标明;对于所 调用的其他方法所抛出的异常,在注释中要求说明所有的异常;对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。 5、类名和接口使用完整的英文单词描述,每个英文单词的首字母使用大写、其 余字母使用小写的大小写混合法。 6、com.huawei.四级部门名称.项目名称,符合包命名规范。 7、不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效 率比条件分支低,而且异常的跳转流程难以预测。 8、划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的多样 化。 9、一个方法不应抛出太多类型的异常,如果程序中需要分类处理异常,则将异 常根据分类组织成继承关系。 10、switch 语句中的 case 关键字要和后面的常量保持一个空格;如果有特殊 的需要要在switch语句中定义case以外的标签,需要在注释中说明。 11、没有被覆盖的友好方法和没有子类的友好类应该定义成final。 12、简单的类可以通过名字比较两个对象的类,推荐使用 getClass()或者 instanceof()。 13、不要调用 Thread 类的 resume(), suspend(),sleep(), stop() 方法。

Java语言编程规范华为

精心整理DKBA 华为技术有限公司企业技术规范 DKBA1040-2001.12 代替(DKBA200106-003)

目次 前言 (3) 1范围11 2规范性引用文件11 3术语和定义11 4排版规范12 12 5 2.包的注释:包的注释写入一个名为package.html的HTML格式的说明文 件放入当前路径。 16 3.包的注释内容:简述本包的作用、详细描述本包的内容、产 品模块名称和版本、公司版权。 16 4.文件注释:文件注释写入文件头部,包名之前的位置。16 5.文件注释内容:版权说明、描述信息、生成日期、修改历史。17 6.类和接口的注释:该注释放在package关键字之后,class或者interface关键字之前。18

18 7.类和接口的注释内容:类的注释主要是一句话功能简述、功能详 细描述, 8.类属性、公有和保护方法注释:写在类属性、公有和保护方法上面。19 19 9.成员变量注释内容:成员变量的意义、目的、功能,可能被用到的地 方。 19 10.公有和保护方法注释内容:列出方法的一句话功能简述、功能详 细描述、输入参数、输出参数、返回值、违例等。 20 11.对于方法内部用throw语句抛出的异常,必须在方法的注释中 标明,对于所调用的其他方法所抛出的异常,选择主要的在注 释中说明。对于非RuntimeException,即throws子句声明会抛出Array 7.注释尽量使用中文注释和中文标点。方法和类描述的第一句话尽量使 23 用简洁明了的话概括一下功能,然后加以句号。接下来的部分可以详细 描述。 23 8.顺序实现流程的说明使用1、2、3、4在每个实现步骤部分的代 码前面进行注释。 9.一些复杂的代码需要说明。23 6命名规范24 6.1规则24

华为JAVA编程要求规范重要试题

JAVA编程规试题 一、判断题(每题2分,共28分) 1、if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while, switch, case等语句的执行语句无论多少都要加括号{}。 2、包的注释容要求包括:简述本包的作用、详细描述本包的容、产品模块名称 和版本、公司、生成日期等。 3、类注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事 项,每次修改后增加作者、新版本号和当天的日期,since 表示从那个版本开始就有这个类或者接口,deprecated 表示不建议使用该类或者接口。 4、对于方法部用throw语句抛出的异常,必须在方法的注释中标明;对于所调 用的其他方法所抛出的异常,在注释中要求说明所有的异常;对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。 5、类名和接口使用完整的英文单词描述,每个英文单词的首字母使用大写、其 余字母使用小写的大小写混合法。 6、.huawei.四级部门名称.项目名称,符合包命名规。 7、不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效 率比条件分支低,而且异常的跳转流程难以预测。 8、划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的多样 化。 9、一个方法不应抛出太多类型的异常,如果程序中需要分类处理异常,则将异 常根据分类组织成继承关系。 10、switch 语句中的 case 关键字要和后面的常量保持一个空格;如果有特殊 的需要要在switch语句中定义case以外的标签,需要在注释中说明。 11、没有被覆盖的友好方法和没有子类的友好类应该定义成final。 12、简单的类可以通过名字比较两个对象的类,推荐使用 getClass()或者 instanceof()。 13、不要调用 Thread 类的 resume(), suspend(),sleep(), stop() 方法。 14、判断方法是否是重载,只关注方法名、参数个数、参数类型,不关注方法返

阿里巴巴编码规范(Java)题库

多选1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和识别。 多选2.关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 B .同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。 C .创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。 D .推荐使用Executors.newFixedThreadPool(int x)生成指定大小的线程池。(线程池不允许使用Executors 去创建,而是通过ThreadPoolExecutor 的方式) 多选3.下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由。 D .不要在视图模板中加入任何复杂的逻辑。 多选4.关于分页查询,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .分页查询,当统计的count为0时,应该直接返回,不要再执行分页查询语句。 B .iBATIS自带的queryForList(String statementName,int start,int size)分页接口有性能隐患,不允许使用。 C .定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑。 D .可使用存储过程写分页逻辑,提高效率。

Java语音编码规范华为

Java语音编码规范(华为) Java语言编码规范 Prepared by 拟制Date 日期 yyyy-mm-dd Reviewed by 评审人Date 日期 yyyy-mm-dd Approved by Date yyyy-mm-dd

Revisi on Record 修订记录

1.范围................................... 2.规范性引用文件............................... 3.术语和定义................................ 4.排版规范.................................. 4.1. 规则................................... 4.2. 建议..... 5. 注释规范 5.1. 规 则........ 5.2. 建议..... 6. 命名规范 6.1. 规 则........ 6.2. 建议..... 7. 编码规范 7.1. 规 则........ 7.2. 建议..... 8. JTEST规 范8.1. 规 则........ 8.2. 建议 ....................................

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文 件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释示例:对此规范或建议从正、反两个方面给出例子。

JAVA最全的编码规范

JAVA最全的编码规范 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。 Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu 等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。 (2) 为了常规用途而创建一个类时,请采取"经典形式",并包含对下述元素的定义: equals() hashCode() toString() clone()(implement Cloneable) implement Serializable (3) 对于自己创建的每一个类,都考虑置入一个main(),其中包含了用于测试那个类的代码。为使用一个项目中的类,我们没必要删除测试代码。若进行了任何形式的改动,可方便地返回测试。这些代码也可作为如何使用类的一个示例使用。 (4) 应将方法设计成简要的、功能性单元,用它描述和实现一个不连续的类接口部分。理想情况下,方法应简明扼要。若长度很大,可考虑通过某种方式将其分割成较短的几个方法。这样做也便于类内代码的重复使用(有些时候,方法必须非常大,但它们仍应只做同样的一件事情)。 (5) 设计一个类时,请设身处地为客户程序员考虑一下(类的使用方法应该是非常明确的)。然后,再设身处地为管理代码的人考虑一下(预计有可能进行哪些形式的修改,想想用什么方法可把它们变得更简单)。 (6) 使类尽可能短小精悍,而且只解决一个特定的问题。下面是对类设计的一些建议: 一个复杂的开关语句:考虑采用"多形"机制

阿里JAVA开发规范,助你写出更干净整洁的代码

一、命名风格 1.【强制】类名使用UpperCamelCase 风格,必须遵从驼峰形式,但以 下情形例外:DO / BO / DTO / VO / AO 2.正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 3.反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion 4.【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。 5.正例:localValue / getHttpMessage() / inputUserId 6.【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清 楚,不要嫌名字长。 7.正例:MAX_STOCK_COUNT 反例:MAX_COUNT 8.【强制】抽象类命名使用Abstract 或Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以Test 结尾。9.【强制】Model 类中布尔类型的变量,都不要加is,否则部分框架解析 会引起序列化错误。 10.反例:定义为基本数据类型Boolean isDeleted;的属性,它的方法也 是isDeleted(),RPC框架在反向解析的时候,“以为”对应的属性名称是deleted,导致属性获取不到,进而抛出异常。

11.【强制】对于Service 和DAO 类,基于SOA 的理念,暴露出来的服 务一定是接口,内部的实现类用Impl 的后缀与接口区别。正例:CacheManagerImpl 实现CacheManager 接口。 12.【推荐】为了达到代码自解释的目标,任何自定义编程元素在命名时,使 用尽量完整的单词组合来表达其意。 正例:从远程仓库拉取代码的类命名为PullCodeFromRemoteRepository 反例:变量int a;的随意命名方式。 1.【推荐】接口类中的方法和属性不要加任何修饰符号(public 也不要加), 保持代码的简洁性,并加上有效的Javadoc 注释。尽量不要在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,并且是整个应用的基础常量。 正例:接口方法签名:void f(); 接口基础常量表示:String COMPANY = "alibaba"; 反例:接口方法定义:public abstract void f(); 说明:JDK8 中接口允许有默认实现,那么这个default方法,是对所有实现类都有价值的默认实现。 1.【参考】枚举类名建议带上Enum 后缀,枚举成员名称需要全大写,单 词间用下划线隔开。 2.说明:枚举其实就是特殊的常量类,且构造方法被默认强制是私有。

Java语音编码规范 华为

Java语音编码规范(华为) 【最新资料,WORD文档,可编辑修改】

Java语言编码规范 Prepared by 拟制Date 日期 yyyy-mm-dd Reviewed by 评审人Date 日期 yyyy-mm-dd Approved by 批准Date 日期 yyyy-mm-dd

Revision Record 修订记录

Table of Contents 目录

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。

4.排版规范 4.1.规则 4.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 4.1.2.*分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列, 同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 示例:如下例子不符合规范。 for (...) { ... .) { ... . .) { ... .) { ... . ength() < ()) { 4.1.3.... ,后不应加空格。 说明:采用这种松散方式编写代码的目的是使代码更加清晰。 由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在Java语言中括号已经是最清晰的标志了。 在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留两个以上空格。 示例: (1)逗号、分号只在后面加空格。 int a, b, c; (2)比较操作符, 赋值操作符"="、"+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域

完整版阿里巴巴编码规范Java题库

多选 1. 如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A . 测试数据入库时加特殊前缀标识。 B . 测试数据使用独立的测试库。 C . 自动回滚单元测试产生的脏数据。 D . 无须区别,统一在业务代码中进行判断和识别。 多选 2. 关于并发处理,下列哪些说法符合《阿里巴巴Java 开发手册》:ABC A . 线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 B . 同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。 C . 创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。 D . 推荐使用Executors.newFixedThreadPool(int x) 生成指定大小的线程池。( 线程池不允许使用Executors 去创建,而是通过ThreadPoolExecutor 的方式) 多选 3. 下列哪些说法符合《阿里巴巴Java 开发手册》:ACD A . 对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B . 永久弃用的代码段注释掉即可,即不用加任何注释。 C . 对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///) 来说明注释掉代码的理由。 D . 不要在视图模板中加入任何复杂的逻辑。 多选 4. 关于分页查询,下列哪些说法符合《阿里巴巴Java 开发手册》:ABC A . 分页查询,当统计的count 为0 时,应该直接返回,不要再执行分页查询语句。 B .iBATIS 自带的queryForList(String statementName,int start,int size) 分页接口有性能隐患,不允许使用。 C . 定义明确的sql 查询语句,通过传入参数start 和size 来实现分页逻辑。 D . 可使用存储过程写分页逻辑,提高效率。 多选7. 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴 Java 开发手册》:ABCD A . 向公司外部提供的http/api 接口,推荐使用“错误码”方式返回异常或者错误信

[实用参考]Java编码规范.doc

Java语言编码规范 青岛一图环视信息技术有限公司 Preparedby 拟制魏志宇 Date 日期 2017-09-11 Reviewedby 评审人Date 日期 Approvedby 批准Date 日期

RevisionRecord修订记录

TableofContents目录 1. 范围 (4) 2. 规范性引用文件 (4) 3. 术语和定义 (4) 4. 排版规范 (5) 4.1. 规则 (5) 4.2. 建议 (7) 5. 注释规范 (8) 5.1. 规则 (8) 5.2. 建议 (13) 6. 命名规范 (16) 6.1. 规则 (16) 6.2. 建议 (17) 7. 编码规范 (19) 7.1. 规则 (19) 7.2. 建议 (23) 8. JTEST规范 (25) 8.1. 规则 (25) 8.2. 建议 (26)

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。

华为代码规范文档

代码规范文档

目录 1概述 (3) 1.1编写目的 (3) 1.2文档约定 (3) 1.3预期的读者和阅读建议 (3) 1.4参考文献 (3) 2排版要求 (4) 2.1程序块缩进 (4) 2.2程序块之间空行 (4) 2.3长语句和长表达式 (4) 2.4循环、判断等长表达式或语句 (5) 2.5短语句 (6) 2.6条件、循环语句 (6) 2.7语句对齐 (6) 2.8函数、过程和结构等语句块 (7) 2.9程序块分界符 (7) 2.10说明性文件 (8) 2.11源文件头 (8) 2.12变量、常量注释 (9) 2.13数据结构的注释 (9) 2.14全局变量 (10) 2.15其他 (10) 2.16命名规范与系统风格一致 (12) 2.17其他 (12) 3可读性 (14) 3.1运算符优先级 (14) 3.2避免直接使用数字作为标识符 (14) 4函数、过程 (16) 4.1对所调用函数的错误返回码要仔细、全面地处理。 (16) 4.2明确函数功能,精确(而不是近似)地实现函数设计。 (16) 4.3局部变量 (16) 4.4全局变量 (16) 5可测性 (17) 5.1调测开关 (17) 5.2打印信息 (17) 5.3单元测试 (17) 5.4集成测试 (17) 5.5断言使用 (18) 5.6使用宏时,不允许参数发生变化 (20)

1概述 1.1编写目的 为规范软件开发人员的代码编写提供参考依据和统一标准。 1.2文档约定 说明本文档中所用到的专用术语定义或解释,缩略词定义。 1.3预期的读者和阅读建议 本文档适用于所有软件开发人员。 1.4参考文献 列出有关的参考文件,如: a.属于本项目的其他已发表文件; b.本文件中各处引用的文档资料。 列出这些文件的标题、作者,说明能够得到这些文件资料的来源。

相关主题
文本预览
相关文档 最新文档