
控制一行的宽度,不要超过120个字符
控制一行的宽度,在不同的概念间增加空格
控制采用缩进来区分不同层次的概念(4个空格)
将局部变量的作用域最小化
if,for,do,while,case,swich,default等语句自占一行,且if,for,do,while必须加括号
控制文件的长度,最好不要超过500行
尽量用代码来解释自己
1. 注释解释代码的意图
2. 保证注释与代码一致
3. 注释与代码相邻,上下方
4. 不要用注释保留废弃代码
5. 不要用注释记录修改日志
团队为包、类、方法、变量取一个号名字
禁止使用魔鬼数字
常量命名,由全大写单词组成,单词间用下划线分隔,且使用static final修饰
变量、属性命名,使用名词,并采用首字母小写的驼峰命名法
方法的命名,用动词和动宾结构,采用首字母小写的驼峰命名法
格式如下:
get+非布尔属性名()
is+布尔属性名()
set+属性名()
has+名词/形容词()
动词()
动词+宾语()
类和接口的命名,采用首字母大写的驼峰命名法
包的命名,由一个或若干个单词组成,所有的字母均为小写
数组声明用 int [] index ,而不用 int index []
谨慎使用静态成员变量
1. 避免随意进行类型强制转换,应改善设计,或在转换前用instanceof进行判断
2. 需要精确计算时不要使用float和double,建议用long,BigDecimal等
3. 不能用浮点数作为循环变量,精度问题会导致错误
4. 浮点型数据判断相等不能直接使用==,做减法,取绝对值和极小值对比,double用1E-6对比
5. 避免同一个局部变量在前后表达不同的含义
6. 不要在单个的表达式中对相同的变量赋值超过一次
![]()
短小
单一,一个方法仅做一件事情
单一抽象层次原则
命令与查询职责分离
不要把方法的入参当作工作变量/临时变量,除非特别需要(在方法里定义一个临时变量运算)
使用类名调用静态方法,而不要使用实例或表达式来调用
应明确规定对接口方法参数的合法性检查 由 调用者负责还是由接口方法本身负责
谨慎使用可变数量参数的方法
对接方法的参数个数不宜过多
类和接口的设计应该遵循面向对象SOLID设计原则
类的设计应遵循迪米特法则
类的设计应遵循 Tell,Don't ask 原则
除提供给外部使用的全局变量外,应尽量避免类成员变量被外部直接访问
避免在无关的变量或无关的概念之间重用名字,避免隐藏(hide)、遮蔽(shadow)和遮蔽(obscure)
不要在父类的构造方法中调用可能被子类覆盖的方法
覆写equals方法时,应同时覆写hashCode方法
同一次运行中,同一个对象如果equals方法中信息没变,多次调用hashCode返回值必须相同
两对象调用equals方法相同,则他们的hashCode方法也必须返回相同值
两对象调用equals方法不同,他们调用hashCode方法,不要求返回值不同
只针对真正异常的情况才使用exception机制
对可恢复的情况使用受检异常(checked exception),对编程错误使用运行时异常(runtime exception)
不要忽略异常
方法注释和文档中要包含所抛出异常的说明
方法抛出的异常,应该与本身的抽象层次相对应
在finally 块中不要使用return、break或continue使finally块非正常结束

不要直接捕获受检异常的基类Exception
对第三方API抛出的大量各类异常进行封装
一个方法不应该抛出太多类型的异常
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-80573-1.html
好棒
好好
孤独暗自泪下来