加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

值得开拓者存眷的Java 8后期间的说话特征

发布时间:2019-09-10 14:58:03 所属栏目:移动互联 来源:佚名
导读:起首我们必需认可,Java 8 是一个里程碑式的版本,这个信托大大都Java措施员都认同,个中最知名的是 Streams Lambda ,这让 Functional Programming 成为也许,让 Java 换发新的活力。这也是即便 Oracle 不在支持 Java 8 的更新,各个云厂商照旧起劲支持,
副问题[/!--empirenews.page--]

值得开拓者存眷的Java 8后期间的说话特征

起首我们必需认可,Java 8 是一个里程碑式的版本,这个信托大大都Java措施员都认同,个中最知名的是 Streams & Lambda ,这让 Functional Programming 成为也许,让 Java 换发新的活力。这也是即便 Oracle 不在支持 Java 8 的更新,各个云厂商照旧起劲支持,站点为https://adoptopenjdk.net/,可以让 Java 8 能继承保存很是长的时刻。
今朝很是多的同窗一般开拓并没有切换到 Java 8 后续的版本,以是这篇文章,我们规划写一个后 Java 8 期间的特征,首要是方向于开拓的,不涉及 GC , Compiler , Java Module , Platform 等,假如逐一表明,预计很是长的文章,虽然后续可以写其它文章先容。下面的这些特征会影响到我们一般的代码编写。

思量到 Java 13 顿时宣布,以是版本包围从 9 到 13 ,与此同时 Java Release 的方法调解,一些特征是在某一版本引入(preview),后续收到反馈后做了很是多的加强和完美,这里就纷歧一声名特征是哪个版本的,你可以领略为后Java 8版本后的特征大杂烩。参考资料来历于官方 features 和 pluralsight 上每一个版本的 Java 特征先容。

var 要害字(局部变量范例推导) Local-Variable Type Inference

Java 支持泛型,可是假如范例很是长,你又不是出格存眷,你用 var 要害字就可以啦,可以让你代码很是简捷。Java IDE 都很是好地支持 var,不消担忧代码提醒等题目。

  1. Map<String, List<Map<String,Object>>> store = new ConcurrentHashMap<String, List<Map<String,Object>>>(); 
  2.  Map<String, List<Map<String,Object>>> store = new ConcurrentHashMap<>(); 
  3.  Map<String, List<Map<String,Object>>> store = new ConcurrentHashMap<String, List<Map<String,Object>>>(); 
  4.  //lambda 
  5.  BiFunction<String, String, String> function1 = (var s1, var s2) -> s1 + s2; 
  6.  System.out.println(function1.apply(text1, text2)); 

复制 confd 文件到 bin 目次下,启动 confd 。

  1. sudo cp bin/confd /usr/local/bin 
  2. confd 

现实的行使中尚有一些小的限定,如 null 赋值题目等,可是这些不是什么题目,顿时用起来。

ProcessHandle

固然我们很少在 Java 中挪用体系呼吁,可是无意用到也是有的,虽然都是ProcessBuilder 。尚有一个就是加强的 ProcessHandle ,可以相识其他历程的一些信息,如获取全部历程、某一历程的启动的呼吁、启动时刻等等。

  1. ProcessHandle ph = ProcessHandle.of(89810).get(); 
  2. System.out.println(ph.info()); 

Collection factory methods

建设 ArrayList , HashSet 照旧用 new 要领,有点过期啦,直接行使工场要领就可以啦。

  1. Set<Integer> ints = Set.of(1, 2, 3); 
  2. List<String> strings = List.of("first", "second"); 

String 类的新 API

这里没法逐一罗列,说几个重要的 ,相识后就不必要第三方的 StringUtils 啦。repeat, isEmpty, isBlank, strip, lines, indent, transform, trimIndent, formatted 等

HTTP 2支持

虽然假如你行使 OkHTTP 3 那就没有题目,假如你不想引入其他开拓包,那么 Java 已经支持 HTTP 2 啦,代码根基也差不多,虽然同步和异步都支持。

  1. HttpClient client = HttpClient.newHttpClient(); 
  2.  HttpRequest req = 
  3.  HttpRequest.newBuilder(URI.create("https://httpbin.org/ip")) 
  4.  .header("User-Agent", "Java") 
  5.  .GET() 
  6.  .build(); 
  7.  HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString()); 
  8.  System.out.println(resp.body()); 

Text Block(JDK 13)

在之前版本,你要有一大段文本,你要对双引号举办转换,转换后很是不得当阅读,如下:

String jsonText = "{"id": 1, "nick": "leijuan"}";

新的方法 text block:

  1. //language=json 
  2.  String cleanJsonText = """ 
  3.  {"id": 1, "nick": "leijuan"}"""; 

简朴多啦,你可以自由写代码,不消担忧各类双引号转换的题目,copy分享转换等。稍等,你为何要在 cleanJsonText 前面添加 //language=json ,这个什么鬼?这个是 IntelliJ IDEA 的一个特征,你的 text block 照旧有语义的,如是一段HMTL、JSON、SQL 等,添加这个后,顿时就代码提醒啦。一样平常人我不汇报他 :)

text block 尚有一个小特征就是根基的模板特征支持,你在text block中要引入一些上下文变量,直接 %s ,然后挪用 formatted 要领就可以啦。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读