本随笔基于阿里巴巴Java开发手册V1.2,陆陆续续记录一些现阶段能理解的,有启发的内容,并将持续更新

  最佳实践——插件使用已经发布为随笔!http://www.cnblogs.com/jiangbei/p/7668654.html

一、编程规范

  1.命名规范

    (1)代码命名严禁下划线(_)或美元符号($)开头或结束

    (2)命名严禁拼音与英文混用的方式

    (3)类名采用 UpperCamelCase 命名方式,其他(变量,方法,参数等)采用 lowerCamelCase 方式

    (4)常量全部使用大写,使用下划线(_)连接

    (5)数组命名方式严禁使用 String args[] 的形式,请务必使用String[] args 的形式([]是数组的一部分)

    (6)POJO中的boolean类型变量都不要加 is(反例:isRich)以免引起解析异常。

    (7)包名统一小写,使用小数点(.)进行分隔

    (8)类名使用合适的后缀可以大大提高可读性,例如测试类 Test 结尾,异常类 Exception 结尾

  2.常量定义

    (1)严禁出现任何魔法值

    (2)long类型的变量,请使用大写L作为标识(long time = 2L)

    (3)变量尽量分类维护,尽量不要全定义在一个类中进行维护

  3.代码格式

     (1)大括号换行(竟然还有左大括号换行的?/笑哭),不再文字赘述,千言万语不如一张图

        方法参数后的括号与大括号之间建议添加一个空格

      

        (2)缩进采用4个空格,严禁使用Tab缩进

          缩进采用 4 个空格,禁止使用 tab 字符。 说明:如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时, 请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。

         (3)任何二目、三目运算符的左右两边都需要加一个空格。

      (4)if/for/while/switch/do 等保留字与括号之间都必须加空格。

      (5)换行规范:

        1) 第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进,参考示例。

        2) 运算符与下文一起换行。

        3) 方法调用的点符号与下文一起换行。

        4) 在多个参数超长,在逗号后换行。

      (6)方法参数在定义和传入时,多个参数逗号后边必须加空格。

    4.OOP规范

      (1)静态方法与静态常量请使用 类名. 进行调用!

      (2)所有的覆写方法,必须加@Override 注解。

      (3)严禁使用过时的类或方法

      (4)Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。("abc".equals(str))

      (5)所有的 POJO 类属性必须使用包装数据类型;所有的局部变量使用基本数据类型。

      (6)构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中。

      (7)POJO 类必须写 toString 方法。使用 IDE 的中工具:source> generate toString 时,如果继承了另一个 POJO 类,注意在前面加一下 super.toString。

      (8)类内方法定义顺序依次是:公有方法或保护方法 > 私有方法 > getter/setter 方法。

      (9)循环体内,字符串的连接方式,使用 StringBuilder 的 append 方法进行扩展。

    5.集合处理

      (1)只要重写 equals,就必须重写 hashCode。(参见java基础随笔)

      (2)HashMap是允许null key和 null value的,并且它是线程不安全的

    6.并发处理

      待更新

    7.控制语句

      (1)每个switch都必须包含一个 default 语句并且 放在最后,即使它什么代码也没有。

      (2)if/else/for/while/do 语句中必须使用大括号。即使只有一行代码

      (3)不要在条件判断中执行其它复杂的语句,将复 杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。

    8.注释规约

      (1)类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式(可以自定义注释模板,参见IDE配置随笔)

      (2)所有的类都必须添加创建者和创建日期。

      (3)方法内部单行注释,在被注释语句上方另起一行(并且//后空一格),使用//注释。方法内部多行注释 使用/* */注释,注意与代码对齐。

      (4)好的命名、代码结构是自解释的,注释力求精简准确、表达到位。避免出现注释的 一个极端:过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担。

阿里巴巴Java开发手册——速读记录的更多相关文章

  1. 《阿里巴巴Java开发手册(正式版》读记

    前几天,阿里巴巴发布了<阿里巴巴Java开发手册(正式版>,第一时间下载阅读了一番. 不同于一般大厂内部的代码规范,阿里巴巴的这本Java开发手册,可谓包罗万象,几乎日常Java开发中方方 ...

  2. 读阿里巴巴Java开发手册v1.2.0之工程结构有感【架构篇】

    首先,把昨天那俩条sql语句的优化原因给大家补充一下,第一条效率极低,第二条优化后的,sql语句截图如下: 经过几个高手的评论和个人的分析: 第一条sql语句查询很慢是因为它首先使用了in关键字查询, ...

  3. 读阿里巴巴Java开发手册v1.2.0之编程规约有感【架构篇】

     不为过去蹉跎,改变当下. 为什么开篇就送这么一句话给大家,我相信很多处于1-3年码龄的哥们儿们,在平时的编码历程中编码的个性可能是多彩的,每个人都有每个人特定的风格,但是我们现在这么随意写,以后这么 ...

  4. 阿里巴巴java开发手册学习记录,php版

    一.编程规约 (一)命名风格 1.目录使用小写+下划线 home,view,model,admin_view 2.类 UpperCamelCase PhpMailer方法 lowerCamelCase ...

  5. 阿里巴巴Java开发手册快速学习

    Java作为一门名副其实的工业级语言,语法友好,学习简单,大规模的应用给代码质量的管控带来了困难,特别是团队开发中,开发过程中的规范会直接影响最终项目的稳定性. 善医者“未有形而除之”,提高工程健壮性 ...

  6. 《阿里巴巴 Java开发手册》读后感

    前言 只有光头才能变强 前一阵子一直在学Redis,结果在黄金段位被虐了,暂时升不了段位了,每天都拿不到首胜(好烦). 趁着学校校运会,合理地给自己放了一个小长假,然后就回家了.回到家才发现当时618 ...

  7. 阿里巴巴Java开发手册(详尽版)-个人未注意到的知识点(转)

    转自 https://blog.csdn.net/u013039395/article/details/86528164 一.编程规约 (一) 命名风格 [强制]代码中的命名只可用英文方式 [强制]类 ...

  8. 阿里巴巴 JAVA 开发手册

    阿里巴巴 JAVA 开发手册 1.0.0 阿里巴巴集团技术部 2016.12.7 首次向 Java 业界公开 一. 编程规约(一) 命名规约1. [强制]所有编程相关命名均不能以下划线或美元符号开始, ...

  9. 304902阿里巴巴Java开发手册1.4.0

    转自官网 前言 <阿里巴巴Java开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者.现代软件行业的高速 ...

随机推荐

  1. June 28th 2017 Week 26th Wednesday

    Anger begins with folly, and ends in repentance. 愤怒以愚蠢开始,以后悔告终. Learn to control your temper, don't ...

  2. linux 安装pip 和python3

    前言: python3应该是python的趋势所在,当然目前争议也比较大,这篇随笔的主要目的是记录在linux6.4下搭建python3环境的过程 以及碰到的问题和解决过程. 另外,如果本机安装了py ...

  3. Codeforces Round #433 (Div. 2)【A、B、C、D题】

    题目链接:Codeforces Round #433 (Div. 2) codeforces 854 A. Fraction[水] 题意:已知分子与分母的和,求分子小于分母的 最大的最简分数. #in ...

  4. 【原创】多字节版本下MFC控件处理字符集的BUG

    工程项目属性: 字符集:多字节 stdafx.h文件中添加: #pragma comment(linker,"/manifestdependency:\"type='win32' ...

  5. XXE攻防——XML外部实体注入

    XXE攻防——XML外部实体注入 转自腾讯安全应急响应中心 一.XML基础知识 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的 ...

  6. Tomcat整体介绍

    来源 本文整理自 <Tomcat内核设计剖析>.<Tomcat结构解析> Tomcat 整体架构 ​ 如上图所示:包含了Tomcat内部的主要组件,每个组件之间的层次包含关系很 ...

  7. Nodejs与mysql连接池的应用(pool)

    /* * 连接池 连接和缓存的技术 * */ var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit:2 ...

  8. 智能指针 与 oc中的指针

     智能指针 与 oc中的指针 智能指针的原理及实现 当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝:另一种更优雅的方式是使用智能指针 ...

  9. 基于VC++的WinCE网口通信

    基于VC++的WinCE网口通信 WinCE下的网络编程与Windows下的非常类似,只是个别API函数有所不同.同样分为UDP和TCP两种,UDP就是无连接的通信,通过“用户数据报协议”(UDP)来 ...

  10. Intermediate_JVM 20180306 : 运行时数据区域

    Java比起C++一个很大的进步就在于Java不用再手动控制指针的delete与free,统一交由JVM管理,但也正因为如此,一旦出现内存溢出异常,不了解JVM,那么排查问题将会变成一项艰难的工作. ...