Java 编程规范

  1. 源文件编码格式为UTF-8

  2. ASCII水平空格字符(0x20,即空格)是源文件中唯一允许出现的空白字符,这意味着:所有其它字符串中的空白字符都要进行转义。

  3. 对于具有特殊转义序列的任何字符(\b, \t, \n, \f, \r, \“, \‘),我们使用它的转义序列,而不是相应的八进制(比如 \012 )或Unicode(比如 \u000a )转义。

  4. 在使用Unicode转义符或是一些实际的Unicode字符时,建议做些注释给出解释,这有助于别人阅读和理解。

    image.png

  5. 一个源文件应包含(每个部分用一个空行隔开):
    1)许可证或版权信息
    2)package语句:写在一行上
    3)import语句:a.不要出现通配符,如:import java.util.*; b.import语句不要换行 c.每组由一个空行隔开,组内不空行
    4)一个顶级类:a.每个类应该以某种逻辑去排序它的成员 b.当一个类有多个构造函数或是多个同名方法,这些函数或方法应该按顺序出现在一起 c.

  6. 大括号{ }a.使用大括号,即使它是可选的。 b.对于非空块和块状结构,大括号遵循Kernighan和Ritchie风格,即左大括号前不换行,后换行;右大括号前换行,若是一个语句或函数体的终止,则后换行,否则不换行。 c.空的块状结构可不换行,如void doNothing() {};多块语句的一部分,即使大括号内没内容,也要换行,如if/else,try/catch/finally

  7. 每当开始一个新的块,缩进增加2个空格,当块结束时,缩进返回先前的缩进级别。缩进级别适用于代码和注释。

  8. 一行一个语句。

  9. 提取方法或局部变量可以有效解决代码过长的问题。

  10. 自动换行的基本准则:倾向于在更高的语法级别出断开: a.如果在非赋值运算符处断开,那么在该符号前断开,如+,它将位于下一行。 b. 如果在赋值运算符处断开,那么在该符号后断开,如=,它将与前面的内容留在同一行。 c. 左括号与方法名或函数名留在同一行。 d. 逗号与其前面的内容留在一行

  11. 没有必要使用多个连续的空行。

  12. 单个ASCII空格出现在如下几个地方: a. 分隔任何保留字与其后的左括号,如if,for,catch b. 分隔任何保留字与其前面的右大括号,如else,catch c. 任何左大括号前 d. 任何二元或三元运算符的两侧 e. 注释的//两边要有空格 f. 类型和变量之间,如List list g. 数据初始化中中括号内的空格可选,如new int[ ] {5,6}

  13. 水平对齐:通过增加可变数量的空格来使某一行的字符与上一行的相应字符对齐。虽然增加了可读性,但是后期维护工作复杂。


    image.png
  1. 变量声明: a. 每次只声明一个变量,不要使用组合声明,如int x,y b. 在需要的时候才声明,而不是在代码块的开头就把变量一次性都声明了,最好在声明时就进行初始化,或者尽快进行初始化。

  2. 数组初始化可写成块状结构,如


    image.png
  3. 在一个switch块内,每个语句组要么通过break,continue,return或抛出异常来终止,要么通过一条注释来说明程序将继续执行到下一个语句组,如//fall through


    image.png
  4. 每个switch语句都包含一个default语句组,即使它什么代码也不包含。

  5. 对于多行的/*……*/注释,后续必须从*开始,并且与前一行的*对齐。

  6. 类和成员的modifiers如果存在,则按Java语言规范中推荐的顺序出现。public protected private abstract static final transient volatile synchronized native strictfp

20.命名规范: a. 包名全部小写 b. 类名,接口名首字母大写,测试类以Test结尾 c.方法名,变量名首单词小写,其余单词首字母大写 d. 常量名全部大写,单词之间用_连接

  1. @Override,能用就用

  2. 使用类名调用静态的类成员,而不是某个具体对象或表达式。


    image.png
  3. 尽量不要使用Finalizers

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 在上一篇的java编程规范(一)中我们讲述了在Java编码中的一般原则,虽然这些原则并不涉及具体的代码规范,但是这...
    间阳幕宾阅读 1,134评论 1 4
  • Android编码规范 源文件基础 文件名 源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java。 文...
    呼呼哥阅读 930评论 0 0
  • 作者:李旺成 时间:2016年4月3日 1. 前言 这份文档参考了 Google Java 编程风格规范和 Goo...
    diygreen阅读 39,851评论 19 224
  • Android 编码规范 1. 前言 这份文档是 Google Java Code Style 的译文,并稍有添加...
    人失忆阅读 441评论 0 3
  • 你给我柠檬汽水的感觉 上一个夏末秋凉的炽热的余烬时节 上一个薄雾微露的微寒的清晨 像是七月的烈阳下的海风 一而再 ...
    Asirnmo阅读 85评论 0 0