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