01. JShell。(java9开始支持)

02. Dynamic Class-File Constants类文件新添的一种结构

1. JShell。

用过Python的童鞋都知道,Python 中的读取-求值-打印循环( Read-Evaluation-Print Loop )很方便。它的目的在于以即时结果和反馈的形式。

java9引入了jshell这个交互性工具,让Java也可以像脚本语言一样来运行,可以从控制台启动 jshell ,在 jshell 中直接输入表达式并查看其执行结果。当需要测试一个方法的运行效果,或是快速的对表达式进行求值时,jshell 都非常实用。

除了表达式之外,还可以创建 Java 类和方法。jshell 也有基本的代码完成功能。我们在教人们如何编写 Java 的过程中,不再需要解释 “public static void main(String [] args)” 这句废话。

02. Dynamic Class-File Constants类文件新添的一种结构

Java的类型文件格式将被拓展,支持一种新的常量池格式:CONSTANT_Dynamic,加载CONSTANT_Dynamic会将创建委托给bootstrap方法。

目标

其目标是降低开发新形式的可实现类文件约束带来的成本和干扰。

03. 局部变量类型推断(var ”关键字”)。

什么是局部变量类型推断?

var javastack = "javastack";

System.out.println(javastack);

大家看出来了,局部变量类型推断就是左边的类型直接使用 var 定义,而不用写具体的类型,编译器能根据右边的表达式自动推断类型,如上面的 String 。

var javastack = "javastack";

就等于:String javastack = "javastack";

在声明隐式类型的lambda表达式的形参时允许使用var

使用var的好处是在使用lambda表达式时给参数加上注解

(@Deprecated var x, @Nullable var y) -> x.process(y);

var 语法 : 局部变量的类型推断.

注意点 :

1) var a; 这样不可以, 因为无法推断.

2) 类的属性的数据类型不可以使用var.

有参数的lambda表达式使用

函数式接口 :

Consumer : 消费型函数式接口.

public void accept(T t);

Consumer consumer = t -> System.out.println(t.toUpperCase());

Consumer consumer = (var t) -> System.out.println(t.toUpperCase());

错误的形式: 必须要有类型, 可以加上var

Consumer consumer = (@Deprecated t) -> System.out.println(t.toUpperCase());

正确的形式:

Consumer consumer = (@Deprecated var t) -> System.out.println(t.toUpperCase());

java11 jshell_java11相关推荐

  1. 5分钟学会Java 9~Java11的七大新特性

    Java11 发布了,然而很多公司还在用Java 8 ,本文会简要介绍Java 9 -11 引入的新语法和API. 本地变量类型推断 Java 10 就已经引入了新关键词var,该关键词可以在声明局部 ...

  2. java11 新特性 详解

    为什么80%的码农都做不了架构师?>>>    引言: 点击-->java10 新特性 详解 点击-->java9 新特性 详解 点击-->java8 新特性 详解 ...

  3. java11正式发布了,让java代码更完美

    主题互动 Java11已经发布了,我们今天聊聊大家还停留在哪个版本呢?大家对于新版本的迅速的发布有什么想说的呢? 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以 ...

  4. Java11震撼发布了,我们该怎么办?

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 2018微服务资源springboot.s ...

  5. Java11正式发布了,我们该怎么办?

    主题互动 Java11已经发布了,我们今天聊聊大家还停留在哪个版本呢?大家对于新版本的迅速的发布有什么想说的呢? 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以 ...

  6. Java11 新特性

    Java 11新特性的详细解释.JDK 11已经于 2018年9月25日正式发布,那么Java 11主要包含哪些新特性呢? JDK 11是Java SE 11平台版本11的开源参考实现,由JSR 38 ...

  7. java11+osgi_错误学习:Java + OSGi

    java11+osgi 最近,我致力于在OSGi环境中使Apache Hive工作. 虽然没有被证明是小菜一碟(软件对吗?..为什么我不感到惊讶? ),它引导我解决了各种Java和OSGi错误. 在这 ...

  8. java8中方法区的内存大小如何设置_从Java8升级到Java11

    奇技 · 指南 为什么选择Java11? 容器环境支持,GC等领域的增强,仅通过切换到 Java 11 就有 16% 的改进. 进行了瘦身,更轻量级,安装包体积小. JDK11 是一个长期支持版. 1 ...

  9. JAVA11 - ZGC 特性

    JAVA11 - ZGC 特性 快速开始 ZGC全称是Z Garbage Collector,是一款可伸缩(scalable)的低延迟(low latency garbage).并发(concurre ...

最新文章

  1. Codeforces Educational round 58
  2. web service
  3. np.concatenate
  4. boost库之tcp实例(同步方式)
  5. java第七章多线程_第七章 多线程
  6. VTK:图表之ShortestPath
  7. 日志文件切割服务logrotate配置及crontab定时任务的使用
  8. python-去重的三种方式-成员判断-索引判断-集合
  9. ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
  10. hbase集群 数据写入_HBase架构与原理详解
  11. 基于visual Studio2013解决C语言竞赛题之0203格式化输出
  12. 关于vue脚手架cli3.0版本的一篇有关配置的文章,可以借鉴
  13. mysql根据用户经纬度查询附近商家,mysql根据经纬度获取附近的商家
  14. 在这做一个词云图生成器来送给大家(附代码),建议收藏
  15. offer和面经分享(内含offer截图)
  16. Vue.js---关闭语法检查
  17. C#方法讲解——飞行棋画地图
  18. 在Oracle中使用脏读,ORACLE 事务处理
  19. 哈佛结构和冯·诺依曼结构
  20. 当iPod Touch来临,你是否也开始心动?

热门文章

  1. stlink下载调试器使用说明(STM32采用stlink下载程序)
  2. c语言中用户验证程序,C语言用户登录系统账户密码比对
  3. golang学习笔记
  4. 使用graphicsmagick时gm命令被占用
  5. 海明校验码原理(详解)
  6. 测试(测试开发)类相关面试题for互联网
  7. MySQLamp;amp;JDBC回顾——MySQL
  8. 让人扎心的Nginx rewrite跳转及Location
  9. 基于人脑神经元与神经信息交流机制的类脑计算模型研究
  10. arange和range