JAVA 11 初体验
随着JAVA每半年发布一次新版本,前几天JAVA 11隆重登场。在JAVA 11中,增加了一些新的特性和api,
同时也删除了一些特性和api,还有一些性能和垃圾回收的改进。
作为一名一线的开发人员,JAVA 11给我们带来哪些便利之处呢?下面我们来体验一下。
在Lambda表达式中使用var
本地变量类型var是java 10提出的新概念,它可以从上下文中推断出本地变量的类型,从而提高代码可读性。
我们看看下面的例子:
public class Main { public static void main(String[] args) throws Exception { URL url = new URL("http://www.oracle.com/"); URLConnection conn = url.openConnection(); Reader reader = new BufferedReader( new InputStreamReader(conn.getInputStream())); } }
使用var声明后,上面的代码可以改写成:
public class Main { public static void main(String[] args) throws Exception { var url = new URL("http://www.oracle.com/"); var conn = url.openConnection(); var reader = new BufferedReader( new InputStreamReader(conn.getInputStream())); } }
我们使用var代替了URL、URLConnection、Reader,提高了代码的可读性,也方便了开发。
但是在JAVA 10中,var变量不能在lambda表达式中声明,在JAVA 11中,解决了这个问题。
我们可以在lambda表达式中使用var,如下:
(var x, var y) -> x.process(y)
上面的例子等同于
(x, y) -> x.process(y)
但是我们不能混合使用,下面的两个例子都是错误的:
//含蓄型的lambda表达式中,要么全使用var,要么全不使用var (var x, y) -> x.process(y) //在lambda表达式中,不能即使用含蓄型,又使用明确型 (var x, int y) -> x.process(y)
标准化HTTP Client API
以前我们在程序中使用HttpClient时,通常会引入apache的HttpClient工具包。在JAVA 11中,我们可以使用JDK原生的
HttpClient了。
public class HttpTest { public static void main(String[] args) throws Exception { String uri = "http://www.baidu.com"; HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(uri)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } }
上面的例子是同步的get请求,还有其他的方法HttpClient也是提供的,例如:
- 异步get
- post提交
- 并发请求
- Get Json
- Post Json
这些例子这里不做详细介绍了,如有需要请参考官方例子。
功能很强大吧,我们不用再引入其他的HttpClient的jar包了。
总结
对于一线开发者而言,JAVA 11的体验就这么多,如有遗漏,会在以后补充。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
C# TSF 输入法的获取
原文 C# TSF 输入法的获取 起因: 「添雨跟打器」中存在一个问题。在 windows 8/10 里面,输入法就获取不到了。我一直没有去管这样的问题。但是也大致知道,可能是 TSF 架构的问题。 TSF: Microsoft Windows 文本服务框架(TSF) 是一个包含在Windows XP 及其后继版本操作系统的系统服务。TSF为高级文本输入的通信以及自然语言技术提供了一个简单的可扩展的框架。 以上引自百度百科。 MSDN: 于是第一时间去MSDN查看了一下关于 TSF 。全英文的文档看得云里雾里。但是搞清了一点情况。TSF 它在 Windows 里面所对应的 dll 文件——msctf.dll。 使用Visual Studio自带的命令工具查看该 dll 的函数列表如下: 命令: 1 dumpbin -exports msctf.dll 结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4...
- 下一篇
简单易用且全面的 JavaScript 日期工具类库
date-fns详细介绍 date-fns 是一个现代的 JavaScript 日期工具类库,提供了最全面、最简单和一致的工具集,用于在浏览器和 Node.js 中操作 JavaScript 日期。 功能特性 模块化:根据需求选择需要引用的模块 不可变:date-fns 使用纯函数构建,并且始终返回一个新的日期实例,而不是更改传递的日期实例。它允许防止错误并跳过长时间的调试会话 可信赖:遵循语义版本,始终向后兼容 快速:轻量快速,为用户提供最佳的使用体验 TypeScript & Flow:date-fns 同时支持 Flow 和 TypeScript 示例代码 import {format, compareAsc} from 'date-fns/esm' format(new Date(2014, 1, 11), 'MM/dd/yyyy') //=> '02/11/2014' const dates = [new Date(1995, 6, 2), new Date(1987, 1, 11), new Date(1989, 6, 10)] dates.sort(comp...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度