git命令和java代码规范

  1. git命令
    git branch -a //查看远程分支
    git branch // 查看本地分支
    git checkout -b branch_name orgin/vtestrc1 //切换远程分支
    git branch branch_name //创建分支
    git checkout branch_name //切换本地分支

  2. 代码规约
    (1)采用 4 个空格缩进,禁止使用 tab 字符。
    说明:如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。
    (2)注释的双斜线与注释内容之间有且仅有一个空格。
    (3)方法参数在定义和传入时,多个参数逗号后边必须加空格。
    (4)IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用Unix 格式,不要使用 Windows 格式。

    (5)Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。推荐使用 java.util.Objects#equals(JDK7 引入的工具类)

    (6)所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。
    说明:对于 Integer var = ? 在-128 至 127 范围内的赋值,Integer 对象是在
    IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 equals 方法进行判断。

    (7)关于基本数据类型与包装数据类型的使用标准如下:
    1) 【强制】所有的 POJO 类属性必须使用包装数据类型。
    2) 【强制】RPC 方法的返回值和参数必须使用包装数据类型。
    3) 【推荐】所有的局部变量使用基本数据类型。
    说明:POJO 类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE 问题,或者入库检查,都由使用者来保证。
    正例:数据库的查询结果可能是 null,因为自动拆箱,用基本数据类型接收有 NPE 风险。

    (8)【强制】定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值。
    反例:POJO 类的 gmtCreate 默认值为 new Date();但是这个属性在数据提取时并没有置入具体值,在更新其它字段时又附带更新了此字段,导致创建时间被修改成当前时间。

    (9)【强制】序列化类新增属性时,请不要修改 serialVersionUID 字段,避免反序列失败;如果完全不兼容升级,避免反序列化混乱,那么请修改 serialVersionUID 值。
    说明:注意 serialVersionUID 不一致会抛出序列化运行时异常。

    (10)【强制】关于 hashCode 和 equals 的处理,遵循如下规则:
    1) 只要重写 equals,就必须重写 hashCode。
    2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法。
    3) 如果自定义对象做为 Map 的键,那么必须重写 hashCode 和 equals。
    说明:String 重写了 hashCode 和 equals 方法,所以我们可以非常愉快地使用 String 对象作为 key 来使用。

    (11)【强制】不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。

    (12)【推荐】集合初始化时,指定集合初始值大小。
    说明:HashMap 使用 HashMap(int initialCapacity) 初始化,
    正例: initialCapacity = (需要存储的元素个数 / 负载因子) + 1。 注意负载因子 (即 loader factor)默认为 0.75,如果暂时无法确定初始值大小,请设置为 16(即默认值)。
    反例:HashMap 需要放置 1024 个元素,由于没有设置容量初始大小,随着元素不断增加,容量 7 次被迫扩大,resize 需要重建 hash 表,严重影响性能。

猜你喜欢

转载自blog.csdn.net/qq3399013670/article/details/79625870