2019软件趋势

1. 2019软件趋势:来自 pivotal

解读:又到了一年总结和展望的时候了,看看 Pivotal(Spring)公司带来的2019年软件趋势关键词。

  • 敏捷
  • 人工智能应用和机器学习
  • 区块链
  • 容器
  • 数据
  • 设计
  • 医疗
  • IT现代化及改造
  • Kubernetes
  • 微服务
  • 开源
  • 零售
  • 安全
  • Serverless
  • 软件工程师

每个主题都邀请了资深的专家进行解读,完整内容可点击原文查看。

2. Java 还是免费的:来自 javaadvent

解读:自从 Oracle 宣布了有关 Java 的一些重大计划,关于 Java 未来是否免费使用这个问题网上有很多讨论。这篇文章做了详细的总结:

  • 正在使用 Java SE8,又想未来免费使用,该怎么做?2019 年以后,Oracle Java SE8 的不是免费更新了。这时,可以选择 OpenJDK,比如Linux 发行版、AdoptOpenJDK、Azul、IBM、Red Hat 或其他版本。
  • 正在使用 Java SE11,又想未来免费使用,该怎么做?可以有两种选择:使用 Oracle OpenJDK 遵循(GPLv2+CE)开源协议,或者选择 OpenJDK,比如Linux 发行版、AdoptOpenJDK、Azul、IBM、Red Hat等其他版本。

3. Java 11: HTTP Client 新API:来自 javacodegeeks

解读:Java 9 里引入的 HTTP Client 新 API,在 Java 11 里成为了标准 API。这篇文章通过例子介绍了新 API 的特性,连接 URL 的代码更简单,可以方便地管理请求参数、cookie 和 session,支持异步请求与 WebSocket。

官方的 API 文档:https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/package-summary.html

4. 在 Ubuntu 18.04 上安装真的 OpenJDK 11:来自 javacodegeeks

解读:2018年9月25日,OpenJDK 11 发布了,安装的软件名称 openjdk-11-jdk,这是 OpenJDK 8 版本之后首个 LTS 版本。作者安装后发现,OpenJDK 11 看起来还是预览版(JDK 10)。通过命令安装,

% apt-get install default-jdk

version 参数给出的版本是 10.0.2。

要真的安装 OpenJDK 11 还是要下载后手动安装。

$ /usr/lib/jvm/jdk-11/bin/java -version

openjdk version "11" 2018-09-25

OpenJDK Runtime Environment 18.9 (build 11+28)

OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

5. Java: 堆外内存中的聚合数据:来自 javacodegeeks

解读:文章介绍了针对大量堆外内存(off-heap)中的聚合数据,最小化垃圾回收带来的影响,同时最大提升内存利用率。作者给出的答案是 Speedment Stream ORM(https://www.speedment.com/initializer/),声称可以做到提高内存利用同时对垃圾回收几乎没有影响。

文章中通过一个例子介绍了 Speedment API 的使用。

从 Speedment API 官网白皮书和演示视频中了解到,该项目主要目标是通过改进框架提升访问 ORM 效率。ORM 是核心产品,超过一定数据量(500M)会收费。Speedment 聚合 API 是 ORM 底层技术的一部分。

6. Eclipse Collections 的隐藏福利:来自 javacodegeeks

解读:Eclipse Collections 是一个开源集合框架,这篇文章介绍了几个虽不常用但很强大的 API,distinct()、partition()、selectInstancesOf()、chunk()、as vs to 命名规范。

  • distinct():找出 List 中唯一的元素通常用到 Set,但这么干会丧失原有的序列,distinct 可以解决这个问题
  • partition():对传入列表通过 Predicate 一次性处理(选择或拒绝)
  • selectInstancesOf():对传入列表过滤属于某个 class 的实例
  • chunk():按照指定的列表大小拆分 iterable 输入,得到子集合
  • 用 as vs to 命名 API:更好地遵守 Java 方法命名规范,https://blog.joda.org/2011/08/common-java-method-names.html

7. Java: 把 JDBC ResultSet 转为 CSV:来自 javacodegeeks

解读:这是一段实用的小例子,作者介绍了如何把 JDBC ResultSet 转成了 CSV。不仅如此,还有 ResultSet 转 JSON。

GitHub地址:https://github.com/sharfah/java-utils/tree/master/src/main/java/com/sharfah/util/sql

2019软件趋势

相关推荐