Best Practice API

# 建议直接使用的第三方类


Common Lang 

=》StringUtils

=》Validate

 

Guava

=》Cache

=》Ordering

 

JDK7(LTS JDK8 JDK11...)

=》Arrays (除了 binarySearch 这个 bug 函数 =>( low + high )>>>1 或者 low + (high - low)/2)

=》Collections

 

………………………………………………………………………………………………………………………………………

一些重要的类库  Netty(nio)、ElasticSearch

一些专业的类库  Joddcommons-iocommons-collections

一些大厂的类库 Facebook JCommontwitter commons

Dozer ?比 BeanUtils 好? 

 

……………………………………………………………………………………………………………………………………………………

学习路径  原生 JNI JVM ,还是看做到什么级别的项目。

JIT = 动态编译 + 优化 => …… C

JNI 调用 C 的方法 ,不用于加速。

下一个 LTS 版 Java 11 ,还有 AOT 技术(启动前静态编译*.so文件)。

 

Source Code => Byte Code => Binary Code 最佳实践

1.根据 Sonar ,把变量声明到使用的附近。 

2.不变对象可加快 GC 跨代扫描速度,变不变取决于实际对象 属性变不变 和 final没关系。

3.源码之下没有秘密 logger.info("placeholder {}",hi) => MessageFormatter 关键代码证实 我们直接拼接字符串性能更好。

4.调参狗,-XX:ParGCCardsPerStrideChunk=32k,俄国发明人说 4K 最优,Twitter 工程师实验 8K 最合适。

... JMH 

6.跑的慢,大部分是 SQL 有问题

7. 一个 Java 对象至少是 16 bytes,比如 Integer(4+12) VS int(4) ,尽量在 系统 数据 通信保持一致。

。。。

 

posted @ 2018-06-10 11:03  chenhui7373  阅读(132)  评论(0编辑  收藏  举报