2019 年的軟體趨勢 | ImportNew 一周資訊
(點擊
上方公眾號
,可快速關注)
來源:lmportNew - 唐尤華
ImportNew小編為您搜集有關Java業界、資源一周資訊(2019.1.3)。
(內容無特殊說明均為英文,這裡僅做摘編,點擊鏈接可直達原文。)
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
推薦閱讀
(點擊標題可跳轉閱讀)
ImportNew 一周資訊 : JDK 9 , 10 與 11 中的安全改進
ImportNew 一周資訊 : 開發者應該了解的 RabbitMQ 最佳實踐
ImportNew 一周資訊 : 2018 值得關注的 9 個代碼與框架相關趨勢
看完本文有收穫?請轉發分享給更多人
關注「ImportNew」,提升Java技能
※一份不能錯過的 Docker 實戰指南
※AOP 那點事兒 ( 續集 )
TAG:ImportNew |