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

。。。

 

转载于:https://www.cnblogs.com/chenhui7373/p/9162499.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值