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軟件趨勢


分享到:


相關文章: