Skip to content

jsjchai/java-example

Repository files navigation

java常用的第三方jar包

Apache Commons封装了许多好用的工具类,使我们在开发中编写少量的代码,提高编码效率

常用的组件:

组件 功能介绍
Lang java基本对象方法的工具类包 如:StringUtils等
Codec 处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等
Collections 对java集合框架扩展操作
Email java发送邮件 对javamail的封装
IO io工具的封装

谷歌开源的常用工具类,遵循高效的java语法实践,高效设计良好的API

常用核心库:

阿里开源的json工具类,可以将java对象转化成json字符串,也可以将JSON字符串转换为等效的Java对象

 //java对象转化成json字符串
 User user = new User();
 user.setId("10000");
 user.setName("Tom");
 String jsonString = JSON.toJSONString(user);
 
 //JSON字符串转换为Java对象
 User u = JSON.parseObject(jsonString,User.class);

由于Java SE 8之前的标准日期和时间类使用起来过于繁琐。joda-time替代了jdk的日期实现。从Java SE 8开始,请使用jdk自带的java.time

// joda-time
DateTime dateTime = new DateTime();
// 90天以后的时间
dateTime.plusDays(90).toString("yyyy-MM-dd hh:mm:ss");

//jdk8以后
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
LocalDateTime now = LocalDateTime.now();
now.plus(day, ChronoUnit.DAYS).format(pattern);

http

okhttp

OkHttp是一个高效的HTTP客户端,它的请求/响应API是用连贯构建器(Builder)和不变性设计的。它支持同步阻塞调用和带回调的异步调用

  • HTTP/2支持允许对同一主机的所有请求共享一个套接字
  • 连接池减少了请求延迟(如果HTTP/2不可用)
  • 透明的GZIP压缩了下载文件的大小
  • 响应缓存完全避免了网络中的重复请求

httpclient

jdk自带的java.net软件包提供了用于通过HTTP访问资源的基本功能,但它并未提供许多应用程序所需的全部灵活性或功能。HttpClient试图通过提供一个高效,最新且功能丰富的软件包来实现这一空白,以实现最新HTTP标准和建议的客户端

jdk HTTP Client API

jdk11 http client取代遗留的java.net.HttpURLConnection,统一http请求客户端。支持HTTP/1.1和HTTP/2(同步和异步编程模型),将请求和响应主体作为响应流处理,并遵循熟悉的构建器模式。

 HttpClient client = HttpClient.newHttpClient();
 HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://www.baidu.com/"))
                .GET()
                .build();
 //同步
 HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

参考文档