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
閱讀更多 戚小柒說IT 的文章