Java中注释使用原则
java中关于@override注解的使用

java中关于 @override注解的使用
@Override是伪代码,表示重写,作用有: 1、可以当注释用,方便阅读; 2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如:如果想重写父类的方法,比如toString() 方法的话,在方法前面加上@Override, 系统可以帮你检查方法的正确性:
@Override public String toString(){...} //这是正确的
但是一旦错写成这样:
@Override public String tostring(){...}
编译器可以检测出这种写法是错误的 这样能保证你的确重写的方法正确.要是没加@override,则编译器将不会检测出错误,而是会认为你为 子类定义了一个新方法tostring()。
Java编程规范总结

Java编程规范总结命名:1. 为包、类、⽅法、变量取⼀个好名字,使代码易于理解2. 禁⽌使⽤魔⿁数字3. 常量命名,由全⼤写单词组成,单词间⽤下划线分隔,且使⽤ static final修饰4. 变量、属性命名,使⽤名词,并采⽤⾸字母⼩写的驼峰命名法5. ⽅法的命名,⽤动词和动宾结构,并采⽤⾸字母⼩写的驼峰命名法6. 类和接⼝的命名,采⽤⾸字母⼤写的驼峰命名法7. 包的命名,由⼀个或若⼲个单词组成,所有的字母均为⼩写8. 数组声明的时候使⽤ int[] index,⽽不要使⽤ int index[]注释:1. 尽量⽤代码来解释⾃⼰2. 注释应解释代码的意图,⽽不是描述代码怎么做的3. 保证注释与代码⼀致,避免产⽣误导4. 注释应与其描述代码位置相邻,放在所注释代码上⽅或右⽅,并与代码采⽤同样缩进5. 不要⽤注释保留废弃代码6. 不要⽤注释记录修改⽇志7. ⼀般单⾏注释⽤//,块注释⽤,JavaDoc注释⽤排版:1. 团队应遵守⼀致的排版风格2. 将排版风格固化到IDE的代码格式化配置⽂件中,并让整个团队使⽤3. 在不同的概念之间,增加空⾏4. 将逻辑紧密相关的代码放在⼀起5. 控制⼀⾏的宽度,不要超过120个字符6. 在不同的概念间(关键字、变量、操作符等)增加空格,以便清楚区分概念7. 采⽤缩进来区分不同层次的概念8. 将局部变量的作⽤域最⼩化9. 给if、for、do、while、switch等语句的执⾏体加⼤括号{}10. 控制⽂件的长度,最好不要超过500⾏变量和类型:1. 谨慎使⽤静态成员变量2. 避免随意进⾏类型强制转换,应改善设计,或在转换前⽤instanceof进⾏判断33. 需要精确计算时不要使⽤float和double4. 不能⽤浮点数作为循环变量5. 浮点型数据判断相等不能直接使⽤==6. 避免同⼀个局部变量在前后表达不同的含义7. 不要在单个的表达式中对相同的变量赋值超过⼀次8. 基本类型优于包装类型,注意合理使⽤包装类型⽅法:1. ⽅法设计的第⼀原则是要短⼩2. ⽅法设计应遵循单⼀职责原则(SRP),⼀个⽅法仅完成⼀个功能3. ⽅法设计应遵循单⼀抽象层次原则(SLAP)4. ⽅法设计应遵循命令与查询职责分离原则(CQRS)5. 不要把⽅法的⼊参当做⼯作变量/临时变量,除⾮特别需要6. 使⽤类名调⽤静态⽅法,⽽不要使⽤实例或表达式来调⽤7. 应明确规定对接⼝⽅法参数的合法性检查由调⽤者负责还是由接⼝⽅法本⾝负责8. ⽅法的参数个数不宜过多9. 谨慎使⽤可变数量参数的⽅法包、类和接⼝:1. 类和接⼝的设计应遵循⾯向对象SOLID设计原则2. 类的设计应遵循迪⽶特法则3. 类的设计应遵循“Tell,Don't ask”原则4. 类设计时优选组合⽽不是继承5. 除提供给外部使⽤的全局常量外,应尽量避免类成员变量被外部直接访问6. 避免在⽆关的变量或⽆关的概念之间重⽤名字,避免隐藏(hide)、遮蔽(shadow)和遮掩(obscure)7. 覆写(override)——⼦类与⽗类间8. 重载(overload)——类内部9. 隐藏(hide)——⼦类与⽗类间10. 遮蔽(shadow)——类内部11. 遮掩(obscure)——类内部12. 不要在⽗类的构造⽅法中调⽤可能被⼦类覆写的⽅法13. 覆写equals⽅法时,应同时覆写hashCode⽅法14. ⼦类覆写⽗类⽅法时应加上@Override注解15. 接⼝定义中去掉多余的修饰词16. 设计时,考虑类的可变性最⼩化异常:1. 只针对真正异常的情况才使⽤exception机制2. 在抛出异常的细节信息中,应包含能捕获失败的信息3. 对可恢复的情况使⽤受检异常(checked exception),对编程错误使⽤运⾏时异常(runtime exception)4. 不要忽略异常5. ⽅法注释和⽂档中要包含所抛出异常的说明6. ⽅法抛出的异常,应该与本⾝的抽象层次相对应7. 对第三⽅API抛出⼤量各类异常进⾏封装8. 使⽤异常来做错误处理,⽽⾮错误码9. 在finally块中不要使⽤return、break或continue使finally块⾮正常结束10. 不要直接捕获受检异常的基类Exception11. ⼀个⽅法不应抛出太多类型的异常12. 充分利⽤断⾔⽇志:1. ⽇志信息准确、繁简得当,满⾜快速定位的需要2. ⽇志的记录,不要使⽤ System.out 与 System.err 进⾏控制台打印,应该使⽤专⽤的⽇志⼯具(⽐如:slf4j+logback)进⾏处理3. ⽇志⼯具对象logger应声明为private static final4. ⽇志应分等级5. ⽇志中不要记录敏感信息多线程并发:1. 多线程访问同⼀个可变变量,需增加同步机制2. 禁⽌不加控制地创建新线程3. 创建新线程时需指定线程名4. 使⽤Thread对象的setUncaughtExceptionHandler⽅法注册Runtime异常的处理者(v1.5+)5. 不要使⽤Thread.stop⽅法,因为该⽅法本质是不安全的,使⽤它可能会导致数据遭到破坏6. 不要依赖线程调度器、线程优先级和yield()⽅法7. 采⽤Java1.5提供新并发⼯具代替wait和notify(v1.5+)8. 使⽤线程安全集合在多线程间共享可变数据9. 多线程操作同⼀个字符串相加,应采⽤StringBuffer10. 针对线程安全性,需要进⾏⽂档(javadoc)说明运算和表达式:1. 不要写复杂的表达式2. 运算时应避免产⽣溢出3. 采⽤括号明确运算的优先级控制语句:1. 采⽤for-each代替传统的for循环(v1.5+)2. 在switch语句的每⼀个case、和default中都放置⼀条break语句序列化:1. 尽量不要实现Serializable接⼝2. 序列化对象中的HashMap、HashSet或HashTable等集合不能包含对象⾃⾝的引⽤3. 实现Serializable接⼝的可序列化类应该显式声明 serialVersionUID泛型:1. 在集合中使⽤泛型(v1.5+)2. 类的设计可优先考虑泛型(v1.5+)3. ⽅法的设计可优先考虑泛型(v1.5+)4. 优先使⽤泛型集合,⽽不是数组(v1.5+)其他语⾔特性:1. 新代码不要使⽤已标注为@deprecated的⽅法2. 使⽤JDK⾃带的API或⼴泛使⽤的开源库,不要⾃⼰写类似的功能。
java文档注释规范(一)

java⽂档注释规范(⼀)https:///huangsiqian/article/details/82725214Javadoc⼯具将从四种不同类型的“源”⽂件⽣成输出⽂档:Java语⾔类的源⽂件(.java),包注释⽂件,概述注释⽂件和其他未处理的⽂件。
包注释⽂件(Package Comment File)每个包都有⾃⼰的⽂档注释。
有两种⽅式来创建包注释⽂件:package-info.java - 可以包含包的声明,包注解(anotation),包注释和Javadoc 标签(tag)。
包注释放在包声明之前。
这是JDK 5.0新引⼊的特性。
如下。
File: java/applet/package-info.java 注意:⽂档注释块内部⾏⾸的*号是可选的/*** Provides the classes necessary to create an applet and the classes an applet uses* to communicate with its applet context.* <p>* The applet framework involves two entities:* the applet and the applet context. An applet is an embeddable window (see the* {@link java.awt.Panel} class) with a few extra methods that the applet context* can use to initialize, start, and stop the applet.** @since 1.0* @see java.awt*/package ng.applet;package.html - 只能包含包注释和Javadoc标签,不能包含包注解。
java 开发规范

java开发规范(一)java命名规范1、变量、成员、方法名统一采用驼峰命名(lowerCamelCase),做到见语知其义例子:变量——用户数据(userList)、方法——getUserData(int type)等。
说明:正常变量定义使用驼峰命名,特殊的如DTO\VO\DO等除外。
2、类名的定义(1)普通类名采用大写字母开始;(2)抽象类采用Abstract或Base开头。
例子:普通类——class UserModel,抽象类——abstract class AbstractUserDefinition等。
3、常量、类型、接口、子类的定义(1)常量使用全大写且单词之间用"_“隔开; (2)boolean变量不能使用is开头;(3)接口尽量不要修饰符、子类紧跟接口追加Impl。
例子:常量——SORT_TYPE,布尔类型——flag,接口——UserService,实现类——UserServiceImpl等。
说明:常量不可组装,需要原子性定义,不能出现"KEY”+SORT_TYPE 这种内部出现。
4、包名、异常、枚举、方法名称的定义(1)包名一律采用小写; (2)异常都采用_Exception结尾; (3)枚举都是以Enum结尾;(4)方法名称——根据方法内容采用如插入insert-*。
例子:异常——UserException,包名——com.test,枚举——UserEnum,方法名称——insertUser等。
5、领域模型定义规范:主要是以VO\DTO\DO等结尾例子:用户数据——UserDTO等(1)数据对象:xxxDO,xxx 即为数据表名。
(2)数据传输对象:xxxDTO,xxx为业务领域相关的名称。
(3)展示对象:xxxVO,xxx一般为网页名称。
(4)POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。
(二)代码格式规范1、括号代码要求左大括号前不换行、左大括号后换行、右大括号前换行、右大括号后还有else等代码则不换行;表示终止的右大括号后必须换行。
java有效的注释说明

java有效的注释说明Java是一种广泛使用的编程语言。
为了保证代码的清晰易懂以及方便后期维护,我们要给Java程序添加注释。
本文将从以下几个方面介绍Java有效的注释说明。
一、注释的种类Java程序中最常见的注释有三种:单行注释、多行注释、文档注释。
单行注释以"//"开头,多行注释以"/*"开头和"*/"结尾,文档注释以"/**"开头和"*/"结尾。
其中,文档注释最为重要,也最为常用。
二、文档注释的使用文档注释是Java程序中的重要注释,也是Java代码中最常用的注释之一。
文档注释可以让我们用简洁清晰的语言来描述代码的作用、参数、返回值等信息。
其具体写法如下:/*** <p>方法的作用</p>* @param 参数名参数说明* @return 返回值说明*/其中,p标签可以用来描述方法的作用,param标签用来描述参数的名称和说明,return标签用于描述方法的返回值。
三、注释的规范在Java中,注释也是需要遵循一定的规范的。
首先,注释应该写在被注释项的前面或者后面,不需要对齐代码。
其次,注释应该简洁明了,避免出现过于冗长的注释。
最后,避免在注释中出现包含比代码本身还复杂的格式和语法。
四、注释的使用场景注释的使用场景包括以下几个方面:首先,注释可以用来描述程序中的重要变量、方法、类的作用和功能。
其次,注释可以在调试程序时帮助快速定位问题所在。
最后,注释还可以在代码交接、阅读和修改时提供较为清晰的方向和思路。
综上所述,Java有效的注释是保证代码清晰易懂、方便维护的重要方面之一。
Java程序员应该养成良好的注释习惯,在代码编写上也应该注重注释的规范性、简洁性和对实际需求的协调性。
java优雅注释原则和代码格式列举

java优雅注释原则和代码格式列举Java作为一种高级编程语言,注释和代码格式是编写优雅代码的重要组成部分。
本文将列举一些优雅注释原则和代码格式,并提供一些指导意义,帮助读者编写结构清晰且易于阅读的Java代码。
第一条原则是注释的准确性。
注释应该准确描述代码的功能、目的和工作原理。
它们应该足够清晰,以便其他开发人员能够理解代码的意图,并依此进行修改或扩展。
此外,注释还应该包括关于代码的重要信息,例如输入和输出的格式,以及函数或方法的预期行为。
第二条原则是注释的简洁性。
注释应该尽可能简洁明了,避免冗余和重复的描述。
在编写注释时,应该考虑到读者的时间以及注释的可读性。
过长或太多的注释可能会使人感到困惑或厌倦,因此应该尽量保持简洁。
第三条原则是注释的规范性。
代码中的注释应该遵循一定的规范和格式。
这样可以增加代码的可读性,并帮助开发人员更快地理解代码。
例如,可以使用JavaDoc样式的注释,准确地描述方法的参数、返回值和异常。
此外,注释应该按照一定的结构和顺序编写,以增加阅读的连贯性。
除了注释,代码格式也是编写优雅代码的重要方面之一。
以下列举一些常见的代码格式原则。
第一条原则是代码缩进和对齐。
在Java中,使用空格或制表符来缩进代码,并保持一致的格式。
适当的缩进和对齐可以使代码的层次结构更加清晰,便于阅读。
第二条原则是空行的使用。
通过在代码的不同部分之间插入空行,可以增加代码的可读性,并帮助读者更好地理解代码的逻辑。
例如,在方法之间插入空行,以分隔不同功能的代码块。
第三条原则是适当地使用空格。
在Java中,应该在运算符前后、逗号和分号后添加空格,以增加代码的可读性。
这可以帮助他人更容易地理解代码的逻辑和计算。
第四条原则是使用适当的命名约定。
在Java代码中,变量、方法和类的命名应该具有描述性,并遵循一定的命名约定。
例如,变量名应该以小写字母开头,采用驼峰式命名法,以提高代码的可读性和可维护性。
通过遵循这些优雅注释和代码格式原则,开发人员可以编写结构清晰、易于阅读和维护的Java代码。
java代码注释规范

java代码注释规范展开全文一、规范存在的意义应用编码规范对于软件本身和软件开发人员而言尤为重要,有以下几个原因:1、好的编码规范可以尽可能的减少一个软件的维护成本, 并且几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护;2、好的编码规范可以改善软件的可读性,可以让开发人员尽快而彻底地理解新的代码;3、好的编码规范可以最大限度的提高团队开发的合作效率;4、长期的规范性编码还可以让开发人员养成好的编码习惯,甚至锻炼出更加严谨的思维;二、命名规范1、一般概念1、尽量使用完整的英文描述符2、采用适用于相关领域的术语3、采用大小写混合使名字可读4、尽量少用缩写,但如果用了,必须符合整个工程中的统一定义5、避免使用长的名字(小于 15 个字母为正常选择)6、避免使用类似的名字,或者仅仅是大小写不同的名字7、避免使用下划线(除静态常量等)2、标识符类型说明1、包( Package )的命名Package 的名字应该采用完整的英文描述符,都是由一个小写单词组成。
并且包名的前缀总是一个顶级域名,通常是 com、edu、gov、mil、net、org 等;如: com.yjhmily.test2、类( Class )的命名类名应该是个一名词,采用大小写混合的方式,每个单词的首字母大写。
尽量保证类名简洁而富于描述。
使用完整单词,避免缩写词( 除非工程内有统一缩写规范或该缩写词被更广泛使用,像 URL , HTML)如: FileDescription3、接口( Interface )的命名基本与 Class 的命名规范类似。
在满足 Classd 命名规则的基础之上,保证开头第一个字母为”I”,便于与普通的 Class区别开。
其实现类名称取接口名的第二个字母到最后,且满足类名的命名规范;如: IMenuEngine4、枚举( Enum )的命名基本与 Class 的命名规范类似。
在满足 Classd 命名规则的基础之上,保证开头第一个字母为”E” ,便于与普通的 Class区别开。
JAVA代码注释规范

JAVA代码注释规范目录JA V A代码注释规范 (1)注释的原则 (1)注释的简洁 (1)注释的一致性 (1)注释的位置 (2)注释的数量 (2)删除无用注释 (2)复杂的注释 (2)多余的注释 (2)必加的注释 (3)JA V A注释技巧 (3)JA V A注释具体实现 (4)源文件注释 (4)类(模块)注释: (5)接口注释: (5)构造函数注释: (6)方法注释: (6)方法内部注释: (7)全局变量注释: (7)局部(中间)变量注释: (7)常量 (7)p.s. 注释使用统一的注释文件 (8)注释的原则注释形式统一在整个应用程序中,使用具有一致的标点和结构的样式来构造注释。
如果在其他项目组发现他们的注释规范与这份文档不同,按照他们的规范写代码,不要试图在既成的规范系统中引入新的规范。
注释的简洁内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害。
注释的一致性在写代码之前或者边写代码边写注释,因为以后很可能没有时间来这样做。
另外,如果有机会复查已编写的代码,在今天看来很明显的东西六周以后或许就不明显了。
通常描述性注释先于代码创建,解释性注释在开发过程中创建,提示性注释在代码完成之后创建。
修改代码的同时修改相应的注释,以保证代码与注释的同步。
注释的位置保证注释与其描述的代码相邻,即注释的就近原则。
对代码的注释应放在其上方相邻或右方的位置,不可放在下方。
避免在代码行的末尾添加注释;行尾注释使代码更难阅读。
不过在批注变量声明时,行尾注释是合适的;在这种情况下,将所有行尾注释要对齐。
注释的数量注释必不可少,但也不应过多,在实际的代码规范中,要求注释占程序代码的比例达到20%左右。
注释是对代码的“提示”,而不是文档,程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱,注释的花样要少。
不要被动的为写注释而写注释。
删除无用注释在代码交付或部署发布之前,必须删掉临时的或无关的注释,以避免在日后的维护工作中产生混乱。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java中注释的使用是有原则的
Java提供了3种类型的注释
例如:
// this is a single-line comment x = 1; // a single-line comment after code 多行注释(C风格)
Java同样提供跨越多行的注释类型。
这种类型的注释以紧跟着一个星号的正斜杠开始,并以紧跟着一个正斜杠的星号结束。
这种类型注释的开始和结束分界符可以在同一行里也可以在不同的行上。
例如:/* This is a c-style comment *//* This is also a c-style comment, spanni ng multiple lines */
注意:C风格的注释不可以嵌套使用。
比如下面的用法:
/* A comment looks like /* This is a comment */ blah blah blah */
上面的用法会造成语法错误,因为Java编译器只把第一个*/ 当做注释来处理。
(编译器认为注释在第一个“*/”就结束了)。
你可以在多行注释里嵌入单行注释:
/* This is a single-line comment: // a single-line comment */
以及在单行注释里使用多行注释:
// /* this is // a multi-line // comment */
文档注释
文档注释是一种与多行注释很类似的特殊注释,它可以用来为你的源代码产生外部文档。
这种注释以紧跟着两个星号的正斜杠开始,并以紧跟着一个正斜杠的星号结束。
例如:
/** This is a documentation comment *//** This is also a documentatio n comment */
这里有一些关于文档注释的重要事情要注意:
javadoc文档生成器会把文档注释里的所有文本都添加到一个HTML 段落里。
这意味着,在文档注释里的任意文本都会被格式化为一个段落;空格和换行符会被忽略。
如果你想要特殊的格式,你必须要在文档注释里使用HTML标签。
如果文档注释以超过两个的星号开始,那么javadoc就认为这些星号是用来在源码里创建一个“框”框住注释的,并忽略多余的星号。
例如:
该注释仅保留“This is the start of a method”文本。
javadoc会忽略文档注释里处于行首的星号。
例如:
该注释仅保留“This is a doc comment on multiple lines that I want to stand out in source code, looking “neat””文本。
常见的用法如下:
该用法是为了突出注释。
要注意的是,这属于文档注释(即使这不是你所想的那样),并会在产生的文档里出现注释的内容。
什么时候使用文档注释
你(至少)应该在任意的公有类、接口、方法和源码里的类或实例变量前面使用文档注释。
这样可以让javadoc针对代码产生简单的文档,它列出了公共实体和每个实体的简要说明。
你同样可以在非公共方法前面使用文档注释,不过需要使用一个javadoc选项来它们产生文档。
相比于公有实体,在非公有实体上使用文档注释显得没那么重要(它的接口不会暴露出来……)。
但如果你要注释代码,你同样可以使用文档注释。
什么时候使用单行注释
任意时候都可以!
关于注释,我有一个简单的建议,在你想写常规注释(不是用来描述类、接口、方法或者变量的文档注释)的时候可以使用单行注释。
为什么?因为你可以轻易地使用多行注释去“注释掉”你的代码段(“注释掉代码”意味着把一段代码的词法状态变为一段注释,让编译器忽略这段代码)。
举个例子:
x = 1; /* set x to 1 */ y = 2; /* set y to 2 */ f(x, y); /* call f with x and y */
要把上面三行代码注释掉,你可能需要在每一行的前面使用单行注释:// x = 1; /* set x to 1 */ // y = 2; /* set y to 2 */ // f(x, y); /* call f with x an
d y */
或者在还没有加注释的地方加上多行注释:
/* x = 1; *//* set x to 1 *//* y = 2; *//* set y to 2 *//* f(x, y);*//* c
all f with x and y */
或者分解或删除已存在的注释的“结束注释”分解符:
/* x = 1; /* set x to 1 * / y = 2; /* set y to 2 * / f(x, y); /* call f with x and
y * / */
这些用法都糟糕透了。
如果原始代码使用下面的注释,那么事情就好办多了:
x = 1; // set x to 1 y = 2; // set y to 2 f(x, y); // call f with x and y
如此一来,只需使用多行注释把代码围起来你就可以轻松把它注释掉:/* x = 1; // set x to 1 y = 2; // set y to 2 f(x, y); // call f with x and y */
在你需要使用注释的时候尽量使用单行注释。
什么时候使用多行注释
阅读了上面的内容后,这个问题变得很明显了。
只使用多行注释来注释代码段,不要用以其他目的。
【编辑推荐】
25 个超棒的HTML5 & JavaScript 游戏引擎开发库
必备知识:大数据处理应遵循的原则
凭啥Java运行环境称虚拟机Python只能称解释器
Java更新高度关注JavaScript与内存使用机制
爱上Java和JVM的10大理由。