Java Project - upan/cheat-sheet GitHub Wiki
Java Project
代码规范
收集大厂的代码规范
- Google Java Style Guide,无法访问可以看 google-styleguide,汉化版本
- SEI CERT Oracle Coding Standard for Java
- 阿里巴巴Java开发手册,本手册以 Java 开发者为中心视角,划分为编程规约、异常日志、 单元测试、 安全规约、 MySQL 数据库、 工程结构、 设计规约七个维度,再根据内容特征,细分成若干二级子目录。根据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。 另外还配备了IDE插件。
- 唯品会Java开发手册,项目地址https://github.com/vipshop/vjtools以阿里巴巴Java开发手册为基础,结合唯品会的内部经验,参考《Clean Code》、《Effective Java》等重磅资料,增补了一些条目,同时删减了一些相对不那么通用的规则。另外还贴心的提供了IDE 模版和 Sonar 规则。
检测插件
- 阿里巴巴的P3C,阿里巴巴代码规范对应的IDE插件。
- SonarLint,SonarLint是一个IDE扩展,可以帮助您在编写代码时检测和修复质量问题。可以帮助我们检测出代码中的坏味道。
- FindBugs,FindBug 是一款开源的 Java 代码检查工具,遵循 GNU 公共许可协议。它可以检查 Java 类或者 JAR 文件,运行的是 Java 字节码而不是源码,检查原理是:将字节码与一组缺陷模式进行对比来发现可能存在的问题,这些问题包括空指针引用、无限递归循环、死锁等。
编译和运行
- javac , javac使用说明
- java
JDK
- JDK7 文档 http://docs.oracle.com/javase/7/docs/api/
- JDK8 文档http://docs.oracle.com/javase/8/docs/api/
- JDK 14 Documentation
- Java Documentation (官方入口)
JVM 官方配置详解
虚拟机参数设置文档
-
官方文档
-
非官方文档
垃圾回收(GC)相关官方文档
- https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs
- http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
集合
- Java 集合 UML图 作者绘制的Java Collection APIs ( List, Set, Queue, & Map)类图。点击类图可以查看大图。 这份列表兼容从JDK 1.0到JDK 7 (1.7)最新版本 接口采用" 灰色"表示,抽象类用" 黄色"表示,实现类用" 绿色"表示。接口有列出它的方法和属性。但抽象类和实现类没有画出它们的方法和属性,可以从其实现的接口猜出。
Java 8
Java Web
Web框架
- Spring MVC,目前的事实标准
- Dropwizard,是一个对开发和运维友好的,高性能的,用于Restful web服务的框架 -awesome-dropwizard
- Vert.x,是在JVM平台进行反应式编程的工具箱 -使用Vertx构建微服务
Java专题
Spring
MyBaits
View
IOC
- Spring IOC
- Guice:轻量级注入框架,功能强大。
Json
- Jackson, Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。在线文档。整理收集
- fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。在线文档。
RPC
本地缓存
- Guava-Cache,
- Caffeine-Cache,A high performance caching library for Java 8
日志
- Log4J ,Log4J 常用配置
- Apache Log4j 2:对之前版本进行了完全重写。现在的版本具备一个强大的插件和配置架构。
- SLF4J:日志抽象层,需要与某个具体日志框架配合使用。
- Java 日志框架整理
爬虫
- Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。可用于生产环境的高度可扩展、可伸缩的网络爬虫。
- Crawler4j:简单的轻量级爬虫。
- JSoup :刮取、解析、操作和清理HTML。
压力测试
分词、检索
- Solr,Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
- Lucene, Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。