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
一些专业的类库 Jodd, commons-io, commons-collections
一些大厂的类库 Facebook JCommon,twitter 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) ,尽量在 系统 数据 通信保持一致。
。。。
Best Practice API的更多相关文章
- Web API 入门指南 - 闲话安全
Web API入门指南有些朋友回复问了些安全方面的问题,安全方面可以写的东西实在太多了,这里尽量围绕着Web API的安全性来展开,介绍一些安全的基本概念,常见安全隐患.相关的防御技巧以及Web AP ...
- 你应该在开始API开发之前知道的事(上)(翻译)
这篇文章的源地址:http://dev.dota2.com/showthread.php?t=58317 由于文章内容较多,英语水平有限,准备尝试着以中英混搭的形式翻译,免得曲解一些不懂内容的意思.以 ...
- ConCurrent in Practice小记 (3)
ConCurrent in Practice小记 (3) 高级同步技巧 Semaphore Semaphore信号量,据说是Dijkstra大神发明的.内部维护一个许可集(Permits Set),用 ...
- ConCurrent in Practice小记 (2)
Java-ConCurrent2.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0 ...
- Web API 使用上安全吗?
Web API入门指南有些朋友回复问了些安全方面的问题,安全方面可以写的东西实在太多了,这里尽量围绕着Web API的安全性来展开,介绍一些安全的基本概念,常见安全隐患.相关的防御技巧以及Web AP ...
- Hbase客户端API基础小结笔记(未完)
客户端API:基础 HBase的主要客户端接口是由org.apache.hadoop.hbase.client包中的HTable类提供的,通过这个类,用户可以完成向HBase存储和检索数据,以及删除无 ...
- 好RESTful API的设计原则
说在前面,这篇文章是无意中发现的,因为感觉写的很好,所以翻译了一下.由于英文水平有限,难免有出错的地方,请看官理解一下.翻译和校正文章花了我大约2周的业余时间,如有人愿意转载请注明出处,谢谢^_^ P ...
- Web API 安全问题
目录 Web API 安全概览 安全隐患 1. 注入(Injection) 2. 无效认证和Session管理方式(Broken Authentication and Session Manageme ...
- 【转】简单的 Laravel 5 REST API
Introduction Almost all successful internet based companies have APIs. API is an acronym for Applica ...
随机推荐
- vue.js sha256加密
sha256: 1.使用cnpm安装 :cnpm install js-sha256 2.然后在组件中methods定义方法,在调用 let sha256 = require("js-sha ...
- day 15 模块、起别名、from导入
模块 '''模块:一系列功能的集合体定义模块:创建一个py文件就是一个模块,该py文件名就是模块名使用模块:在要使用模块的文件中,通过 import 模块名 来导入模块 ''''''import ...
- Git—推送代码至Github
Git—上传代码至Github 首先得有个Github的账户,然后创建一个库. 然后找到指向改库的URL 第一次上传需要设置用户邮箱,打开git安装文件/bin下面找到git.bash并打开,设置全局 ...
- HTML文字与列表
文字内容 添加文字 <body> 我是Mingle </body> HTML文字的需要添加在<body> </body>里面. 标题字 标题字就是以几种 ...
- es6可变参数-扩展运算符
es5中参数不确定个数的情况下: //求参数和 function f(){ var a = Array.prototype.slice.call(arguments); var sum = 0; a. ...
- mybatis mapper映射文件全解
目录 select.update.delete.insert 设置参数类型以及取值 基本数据类型 对象数据类型 map数据类型 #{ } 和 ${ } 的区别 ResultMap Auto-map ...
- CodeForces Round #552 Div.3
A. Restoring Three Numbers 代码: #include <bits/stdc++.h> using namespace std; ]; int a, b, c; i ...
- python基础概念(转)
基础回顾: 1.集合 集合有2个重要作用:关系测试(并集,差集,交集)和去重. 2.文件编码 2.7上默认文件编码是ASCII码,因为不支持中文,就出了GB2312,在2.7上要支持中文就必须申明文件 ...
- Python——电子邮件、Internet协议相关模块
一.电子邮件相关模块 email:用于处理电子邮件 smtpd:SMTP服务器 base64:Base-16.32.64数据编码 mhlib:处理MH文件格式解析的类 mailcap:mailcap文 ...
- [模板] 区间mex && 区间元素种数
区间mex 问题 给定序列\({a_i}\), 每次询问给出\(l\), \(r\), 询问 \(\text{mex} \{a_i\}, i \in \{l, l+1, \cdots r\}\) 解法 ...