读书人

[Doing]Java常见有关问题汇总@stackov

发布时间: 2013-10-25 14:36:53 作者: rapoo

[Doing]Java常见问题汇总@stackoverflow

[Q]排序后的数组处理更高效?

[A]分支预测惹的祸。right every time vs. wrong too often -> try to identify pattern(NNNNN...NTTTT...T) and follow it

[Hack]避免关键循环内的data-dependent branching 或

Replace

int t = (data[c] - 128) >> 31;sum += ~t & data[c];

[注]2.79(排序后) vs. 8.10(未排序) vs. 3.54(未排序但Hack后) 差别还是蛮明显的


[Q]两时间相减返回诡异值

[A]Local Time Discontinuity

[注]JDK1.7版本已更正该问题


[Q]避免使用" !=null "

[A]null值可作为约定的1.有效返回值;2.无效返回值。

[Hack]第2种情况可以采用断言(-ea),也可以抛出异常。断言在响应速度和信息意义上优于异常。第1种情况尽量避免用null作为返回值:对集合而言返回空集;对非集合而言尝试Null Object Pattern。



读书人网 >编程

热点推荐