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) ,尽量在 系统 数据 通信保持一致。

。。。

上一篇:关于webpack使用的一些问题


下一篇:PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)