2017-12-22
Git 版本管理流程

命名规范

  • master 分支:master
  • develop 分支:develop
  • release 稳定分支:release_stable_YYYYMMDD_n,YYYYMMDD 为当前日期(年月日),n 为递增序列号;
  • release 测试分支:release_nightly_YYYYMMDD_n,YYYYMMDD 为当前日期(年月日),n 为递增序列号;
  • 开发人员版分支:bug单号为 bugfree 编号,n 为递增序列号。
    • 修复 bug:fixbug_bug单号_邮箱前缀_n
    • 需求功能:feature_bug单号_邮箱前缀_n

Read More
 2017-12-18
clone 方法

Cloneable 接口:

  • 实现 Cloneable 接口的类表明 clone 方法会返回该对象的一个逐域拷贝(field-for-field copy)的实例。
  • 在一个未实现 Cloneable 接口的类上调用 clone 方法会抛出 CloneNotSupportedException 异常。
  • 实现 Cloneable 接口的类应该用一个public方法重写 Object 的 clone 方法(protected)。
  • Cloneable 接口并没有提供一个 clone 方法,因此并不能因为类实现了此接口就可以调用 clone 方法。

Read More
 2017-12-17
equals 方法

实现 equals() 方法,要实现以下四点:

  • 自反性:对于任何非 null 引用 x,x.equals(x)必须返回 true。
  • 对称性:对于任何非 null 引用 x 和 y,当 y.equals(x) 返回 true 时,x.equals(y) 也必须返回 true。
  • 传递性:对于任何非 null 引用x,y 和 z,当 x.equals(y) 返回 true,并且 y.equals(z) 也返回 true,那么 x.equals(z) 也必须返回 true。
  • 一致性:对于任何非 null 引用 x 和 y,只要 equals 方法用到的信息没有被修改,多次调用 x.equals(y)应该一致性地返回 true 或 false。

Read More
 2017-12-09
逃逸分析

  • 如果一个对象被多个线程或方法使用,那么这个对象的指针就发生了逃逸
  • 逃逸分析可以减轻 Java 的同步负载内存堆分配压力的全局数据流分析算法。
  • 分析一个对象的使用范围决定是否要把它分配在上,如果一个对象未发生逃逸,则直接分配在上。
  • -XX:+DoEscapeAnalysis开启逃逸分析。

Read More