欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    安全管理体系ISO27001JAVA编码规范.docx

    • 资源ID:16674133       资源大小:28.81KB        全文页数:20页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    安全管理体系ISO27001JAVA编码规范.docx

    1、安全管理体系ISO27001JAVA编码规范Java编码规范1介绍1.1目的本文旨在制定Java编码标准。所有Java开发人员应遵循本文中规定的标准。目的是使根据本文中的标准开发的代码更容易维护、更易于理解并使编码人员工作更加轻松,本文并不详细介绍所有可能的标准或组合,它旨在解决一些将简化所有程序人员工作的关键问题。1.2范围本文件适用于用JAVA来实现的软件产品在编码实现过程中应遵循的规范。1.3参考文档本规范是基于Sun网站提供的Java Code Convention撰写的:2术语表名称/缩写英文全称中文解释标准表示必须遵循的规则。如果您的代码不能满足这些标准,那么您的代码将不能得到广泛

    2、应用。建议表示我们建议您遵循的首选策略,以便系统达到最佳的性能。示例我们在许多地方加入了代码示例,以便程序员更清楚的理解我们的规范。3规范概述本规范为实现过程中用JAVA来进行编码时应遵循的规范,主要内容包括:命名规范、JAVA文件样式、JAVA注释约定、缩进排版、编程技巧及指南及通用J2EE编码规范。在实现过程中的编码实现,代码走查活动中使用到此规范。4规范详述4.1命名规范4.1.1文件(File)Java程序使用下列文件后缀: 文件类别文件后缀Java源文件.javaJava字节码文件.class在Java中,Java文件名与类名一致。示例:HelloWorld.java, HelloW

    3、orld.class4.1.2包(Package)规则:包的名字应该都是由一个小写单词组成,对于全局包,将你的 Internet 域名反转并接上包名。版本名:包的版本名应以这一包主要开发用于的项目阶段开始。示例:第1阶段包版本:1.*第2阶段包版本:2.*版本名中,包版本应跟在项目阶段编号之后。包的最后版本的版本名应在版本名尾包括“(FINAL)”。示例:package java.awt;4.1.3组件(Component)规则:组件/部件(Component)使用完整的英文描述来说明组件的用途,末端应接上组件类型。示例: okButton, customerList, fileMenu4.1

    4、.4类(Class)规则:1.所有类名都必须以大写字母开始,必须拼写出整个单词而且附加词的第一个字母必须为大写字母,而其他字母都小写的单词组成。2.不要为类添加前缀来标识类(除非某类名已存在)。3.包名保证不要使用类名。特定类型的类后缀添加应适当。 示例:对于每个业务对象来说(如Customer),可能有其它相关的对象:-服务器上的Home对象- 如CustomerHome-访问相应服务器对象的客户stub的对象- 如CustomerHomeStub-客户机和服务器对象共享的接口- 如CustomerHomeInterface-客户窗口界面包含代表业务对象的视图- 如CustomerDetai

    5、lsView-管理业务流程客户控制器- 如CreateCustomerManager4.1.5接口(Interface)规则:采用完整的英文描述符说明接口封装,所有单词的第一个字母大写。习惯上,名字后面加上后缀 able, ible 或者 er,但这不是必需的。示例:Contactable,Prompter4.1.6方法(Methods)规则:方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。示例:run(),runFast(),getBackground();4.1.7常量(Constants)规则:所有类常量名和ANSI常量的声明,应该全部大写,单词间用

    6、下划线隔开。(尽量避免ANSI常量,容易引起错误)必须全部大写,必须全部拼写出整个单词并且必须使用下划线分开单词。示例:UPPER_CASE_WITH_UNDERSCORES_BETWEEN_WORDS4.1.8变量(Variables)规则:1.除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。2.变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c

    7、,d,e,它们一般用于字符型。3.对于循环计数器,通常采用字母 i,j,k 或者 counter 都可以接受。 i, j, k, counter示例:char c,int i, float myWidth;4.1.9数组(Array)数组应该总是用下面的方式来命名,示例:objectType。 byte buffer;4.2Java文件样式4.2.1版权信息(Beginning Comments) 所有的源文件都应该在开头以注释的形式列出版权信息,这里面包括了源文件的类名、版本信息、日期、代码的开发者和修改者以及版权声明。示例:/* Classname* Version information

    8、 * Date* * Copyright notice* Originated by XXXX on 2006/09/05 * Modified by XXXX on 2006/09/10*/ 4.2.2包和引入语句(Package and Import Statements)在多数Java源文件中,第一个非注释行是包语句。在它之后可以跟引入语句(Import),引入语句(import) 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。示例:package java.awt;import java.awt.pee

    9、r.CanvasPeer;import import java.io.*;import java.util.Observable;*这里 java.io.* 使用来代替InputStream and OutputStream 的。4.2.3类和接口声明(Class and Interface Declarations)1 每个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。2 类注释和定义:类注释位于引入语句之后,一般用来对类进行解释,类定义应该在类注释之下,包含了在不同的行的 exten

    10、ds 和 implements;示例:public class CounterSetextends Observableimplements Cloneable3 类的静态变量的顺序:首先是类的公共变量,随后是保护变量,再后是包一级别的变量(没有访问修饰符,access modifier),最后是私有变量。4 类的示例变量顺序:首先是公共级别的,随后是保护级别的,再后是包一级别的(没有访问修饰符),最后是私有级别的。5 方法:方法应该按功能,而非作用域或访问权限,分组。例如,一个私有的类方法可以置于两个公有的实例方法之间。其目的是为了更便于阅读和理解代码。4.2.4类的成员变量(Class F

    11、ields)public 的成员变量必须生成文档(JavaDoc)。proceted、private和 package 定义的成员变量如果名字含义明确的话,可以没有注释。示例:/* * Packet counters */protected int packets;4.2.5存取方法建议:存取方法只是简单的用来将类的变量赋值获取值的话,可以简单的写在一行上。但是,其他方法与存取方法不要写在同一行上。示例:/* * Get the counters * return an array containing the statistical data. This array has been * f

    12、reshly allocated and can be modified by the caller. */public int getPackets() return copyArray(packets, offset); public int getBytes() return copyArray(bytes, offset); public int getPackets() return packets; public void setPackets(int packets) this.packets = packets; 4.2.6构造函数构造函数应该用递增的方式写(比如:参数多的写在

    13、后面)。访问类型(public, private等)和任何 static, final或synchronized应该在一行中,并且方法和参数另写一行,这样可以使方法和参数更易读。 示例:public CounterSet(int size) this.size = size;4.2.7ToString方法每个类都应该明确定义ToString方法。4.3Java注释约定4.3.1注释的基本介绍Java程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。实现注释用以注释代码或者实现细节,用“/*.*/”和“/”界定。文档注释(

    14、被称为doc comments)从实现自由(implementation-free)的角度描述代码的规范。它可以被那些手头没有源码的开发人员读懂,是Java独有的,并由/*.*/界定。它还可以通过javadoc工具转换成HTML文档。注释应被用来给出代码的总括,并提供代码自身没有提供的附加信息。注释应该仅包含与阅读和理解程序有关的信息。例如,相应的包如何被建立或位于哪个目录下之类的信息不应包括在注释中。在注释里,对设计决策中重要的或者不是显而易见的地方进行说明是可以的,但应避免提供代码中己清晰表达出来的重复信息。多余的注释很容易过时。通常应避免那些代码更新就可能过时的注释。4.3.2注释的基本

    15、格式规范1 注释不应写在用星号或其他字符画出来的大框里。注释不应包括诸如制表符和回退符之类的特殊字符。2 程序可以有4种实现注释的风格:块(block)、单行(single-line)、尾端(trailing)和行末(end-of-line)。详细规范参见下表:注释风格风格说明示例块注释(Block Comments)块注释通常用于提供对文件、方法、数据结构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方,比如方法内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。块注释之首应该有一个空行,用于把块注释和代码分割开来。块注释可以以/*-开

    16、头,这样indent(1)就可以将其识别为一个代码块的开始,而不会重排它。1,/* * Here is a block comment. */ 2,/*- * Here is a block comment with some very special * formatting that I want indent(1) to ignore. * * one * two * three */ 单行注释(Single-Line Comments)短注释可以显示在一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该采用块注释(参见块注释)。单行注释之前应该有一个空行。if

    17、(condition) /* Handle the condition. */ . 尾端注释(Trailing Comments)极短的注释可以与它们所要描述的代码位于同一行,但是应该有足够的空白来分开代码和注释。若有多个短注释出现于大段代码中,它们应该具有相同的缩进。if (a = 2) return TRUE; /* special case */ else return isPrime(a); /* works only for odd a */ 文档注释(Documentation Comments)文档注释描述Java的类、接口、构造器、方法以及字段(field)。每个文档注释都会被

    18、置于注释定界符/*.*/之中,一个注释对应一个类、接口或成员。若想了解更多有关文档注释和javadoc的详细资料,参见javadoc的主页:/* * The Example class provides . */3 若你想给出有关类、接口、变量或方法的信息,而这些信息又不适合写在文档中,则可使用实现块注释(见5.1.1)或紧跟在声明后面的单行注释(见5.1.2)。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。4 文档注释不能放在一个方法或构造器的定义块中,因为Java会将位于文档注释之后的第一个声明与其相关联。4.4缩进排版4.4.1行长度(Line

    19、Length)尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理。注意:用于文档中的例子应该使用更短的行长,长度一般不超过70个字符。4.4.2换行(Wrapping Lines)当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:- 在一个逗号后面断开 - 在一个操作符前面断开- 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开- 新的一行应该与上一行同一级别表达式的开头处对齐- 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。 示例:1方法调用的断开换行:someMethod(longEx

    20、pression1, longExpression2, longExpression3, longExpression4, longExpression5);var=someMethod1(longExpression1, someMethod2(longExpression2, longExpression3);2算数表达式的断开:longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; /这是一个比较好的断行方式longName1 = longName2 * (longName3 + longN

    21、ame4 - longName5) + 4 * longname6; /应该尽量避免这样的断行3if语句的换行通常使用8个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较不方便。: /不要选用这样的缩进 if (condition1 & condition2) | (condition3 & condition4) |!(condition5 & condition6) /不好的换行 doSomethingAboutIt(); /易使这行被忽视 /尽量选用这样的缩进 if (condition1 & condition2) | (condition3 & condition4) |!(

    22、condition5 & condition6) /这是一个好的缩进习惯 doSomethingAboutIt(); /这也是一个可以选用的缩进 if (condition1 & condition2) | (condition3 & condition4) |!(condition5 & condition6) doSomethingAboutIt(); 4上述提到的三种方法也可以用在三元表达式中alpha = (aLongBooleanExpression) ? beta : gamma; alpha = (aLongBooleanExpression) ? beta : gamma; a

    23、lpha = (aLongBooleanExpression) ? beta : gamma;4.5编程技巧与指南4.5.1提高性能建议在写代码的时候,从头至尾都应该考虑性能问题。这不是说时间都应该浪费在优化代码上,而是应该时刻提醒自己要注意代码的效率。比如:如果没有时间来实现一个高效的算法,那么应该在文档中记录下来,以便在以后有空的时候再来实现它。下面将提供一些优化性能的方法,与标准相比,这只是对编程的优化建议。I.校验:a 当校验布尔型值时,不要采用如下方式 if (booleanValue = true) or if (booleanValue = false)建议使用 if (bool

    24、eanValue) or if (!booleanValue) / For false conditionb 避免在if和while 条件句中使用(“=”)(不要编码为:if (x = 0) )。原因是x将一直为0,条件将一直为真。II.向量(Vector):当需要持续处理向量(Vector)中的元素时,使用以下代码以提高运行效率:示例:for (int i=0; i = 0; i-) / slightly more efficient / do something to vector.elementAt(i)而不要用:Enumeration e = vector.elements();whi

    25、le (e.hasMoreElements() / do something to e.nextElement()III.方法与构造函数:a.对象的Getter方法(与原始对象相反)应使用lazy initialization (只有当它们需要时才初始化)。原始对象将自动设置为缺省值(boolean = false、int = 0等)。b.不必要的对象构造 不要在循环中构造和释放对象 c.使用 StringBuffer 对象 在处理 String 的时候要尽量使用 StringBuffer 类,StringBuffer 类是构成 String 类的基础。String 类将 StringBuff

    26、er类封装了起来,(以花费更多时间为代价)为开发人员提供了一个安全的接口。当我们在构造字符串的时候,我们应该用 StringBuffer来实现大部分的工作,当工作完成后将StringBuffer对象再转换为需要的 String 对象。比如:如果有一个字符串必须不断地在其后添加许多字符来完成构造,那么我们应该使用 StringBuffer 对象和她的 append() 方法。如果我们用 String 对象代替 StringBuffer 对象的话,会花费许多不必要的创建和释放对象的 CPU 时间。d.synchronized 关键字 避免不必要的使用关键字:synchronized,应该在必要的时

    27、候再使用她,这是一个避免死锁的好方法。IV.类常量:如果可能,使用Constant类型的原始数据类型而不是它们的值本身。这有助于提高代码的运行效率,减少内存需求,因为很少有对象将需要初始化。 示例: 应该用 public static final int BY_ORG_NAME = 1; 而不是 public static final Integer BY_ORG_NAME = new Integer(1)4.5.2增强代码可读性1 变量赋值避免在一个语句中给多个变量赋相同的值,增强可读性。例如: fooBar.fChar = barFoo.lchar = c; / AVOID! 不要将赋值运

    28、算符用在容易与相等关系运算符混淆的地方。例如: if (c+ = d+) / AVOID! (Java disallows) . 应该写成 if (c+ = d+) != 0) . 不要使用内嵌(embedded)赋值运算符试图提高运行时的效率,这是编译器的工作。例如: d = (a = b + c) + r; / AVOID!应该写成 a = b + c; d = a + r;2 运算符表达式:一般而言,在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题,是个好方法。即使运算符的优先级对你而言可能很清楚,但对其他人未必如此。你不能假设别的程序员和你一样清楚运算符的优先级。示例: if

    29、 (a = b & c = d) / 尽量避免 if (a = b) & (c = d) / 正确4.5.3减少编码错误exit() exit 除了在 main 中可以被调用外,其他的地方不应该调用。因为这样做不给任何代码机会来截获退出。一个类似后台服务的程序不应该因为某一个库模块决定了要退出就退出。 异常 申明的错误应该抛出一个RuntimeException或者派生的异常。 顶层的main()函数应该截获所有的异常,并且打印(或者记录在日志中)在屏幕上。 垃圾收集 JAVA使用成熟的后台垃圾收集技术来代替引用技术。但是这样会导致一个问题:你必须在使用完对象的实例以后进行清场工作。除非输出流一出作用域就关闭,非引用计数的程序语言,比如JAVA,是不能自动完成变量的清场工作的。示例: FileOutputStream fos = new FileOutputStream(projectFile); project.save(fos, IDE Project File); fos.close();Clone 示例:implements Cloneable public Object clone() try ThisClass obj = (ThisClass)super.clone(); obj.field1 = (int)field1.clo


    注意事项

    本文(安全管理体系ISO27001JAVA编码规范.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开