2019 年的软件趋势

来源:lmportNew - 唐尤华

1. 2019年软件趋势

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

敏捷

人工智能应用和机器学习

区块链

容器

数据

设计

医疗

IT现代化及改造

Kubernetes

微服务

开源

零售

安全

Serverless

软件工程师

2. Java还是免费的

解读:自从 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. Java11:HTTP Client新API

解读: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

解读: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:堆外内存中的聚合数据

解读:文章介绍了针对大量堆外内存(off-heap)中的聚合数据,最小化垃圾回收带来的影响,同时最大提升内存利用率。作者给出的答案是 Speedment Stream ORM

https://www.speedment.com/initializer/

声称可以做到提高内存利用同时对垃圾回收几乎没有影响。

银河战舰

广告

查看应用

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

6. Eclipse Collections的隐藏福利

解读: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

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

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

觉得文章不错,记得转发分享给更多同学哦

本文分享自微信公众号 - 技术从心(gh_d845efe513db)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CWIKIUS

Protocol Buffers 开发者指南

欢迎来到 protocol buffers 的开发者指南。protocol buffers 是一个语言中立,平台中立针对通讯协议,数据存储和其他领域中对结构化数...

9040
来自专栏卯金刀GG

高并发Java(3):Java内存模型和线程安全

网上很多资料在描述Java内存模型的时候,都会介绍有一个主存,然后每个工作线程有自己的工作内存。数据在主存中会有一份,在工作内存中也有一份。工作内存和主存之间会...

8110
来自专栏洛米唯熊

WebLogic第二版 CNVD-C-2019-48814/CVE-2019-2725

该漏洞是由wls9_async_response组件导致,在反序列化处理输入信息时存在缺陷,攻击者可以发送精心构造的恶意 HTTP 请求,未授权的情况下远程执行...

18040
来自专栏卯金刀GG

【JVM学习资料之虚拟机栈中都有什么?】

Java虚拟机栈(Java Virtual Machine Stacks) 是线程私有的,它的生命周期与线程相同。虚拟机栈为虚拟机执行Java方法(也就是字节码...

13830
来自专栏卯金刀GG

高并发Java(2):多线程基础

使用线程的原因是,进程的切换是非常重量级的操作,非常消耗资源。如果使用多进程,那么并发数相对来说不会很高。而线程是更细小的调度单元,更加轻量级,所以线程会较为广...

10520
来自专栏小白帽学习之路

利用Metasploit破解Tomcat登录密码并通过war包部署Getshell

Apache Tomcat 是世界上使用最广泛的Java Web应用服务器之一,绝大数人都会使用Tomcat的默认配置。然而默认配置中会有一个向外网开放的Web...

42040
来自专栏卯金刀GG

【Solr基础】是什么

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了...

7340
来自专栏爱编码

Java的CopyOnWriteArrayList

ArrayList并不是线程安全的,在读线程在读取ArrayList的时候如果有写线程在写数据的时候,基于fast-fail机制,会抛出ConcurrentMo...

9220
来自专栏卯金刀GG

【springMVC基础】spring获取bean的几种方法

ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext....

20130
来自专栏卯金刀GG

【Jedis配置】springSSM + Jedis连接池配置

当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法定义),表示该类可以序列化.序列化的目的是将一个实现了Serializable接...

25320

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励