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. iis php配置内部错误,iis 500 内部服务器错误 php
  2. boost::contract模块实现可选结果的测试程序
  3. 《炉石传说》架构设计赏析(2):Scene管理
  4. linux窗口黑边,解决deepin-scrot在gnome3截图顶部出现黑边问题
  5. 取消 Windows Server 2008 下“一个用户限制使用一个会话”
  6. DBM经历(六)UAT了
  7. 360手机助手电脑版 v2.4.0.1251 官方版
  8. menu在python中的意思_Python-Tkinter 组件之Menu
  9. 使用keybase给你的Github commit加上GPG Verified签名认证(keybase教程)
  10. 应用市场首发,APP推广如何应对
  11. PHP WEB程序设计信息表,WEB程序设计(PHP)2020知到答案全套
  12. 无人机技术的发展与应用
  13. 同城聚合平台v59.4.0 本地同城 同城信息 同城商家
  14. 【财务】FMS财务管理系统---应收管理
  15. FNDLOAD命令整合
  16. Gogs生产环境搭建和数据迁移指南
  17. 项目管理中的边边角角 之三
  18. python设定数值范围_Python 生成周期性波动的数据 可指定数值范围
  19. Vue实战篇二十八:实现一个手机版的购物车
  20. ArcGIS在城乡规划中的应用【1】——地形分析

热门文章

  1. Linux命令 rm -rf报错 mv无效选项 --‘r‘
  2. ESIM卡移动联通电信ESIM卡价格ESIM卡
  3. unicode 生僻字_[微软拼音小技巧] 如何用Unicode输入生僻字
  4. 写给女朋友的3D旋转相册
  5. php redis extension
  6. 校招潜规则,泄密太多我担心大厂HR封杀我
  7. GPRS 中的PDP上下文名词解释
  8. go语言工作目录都有什么?GOPATH下的目录结构
  9. 如何不写代码通过爬虫软件采集表格数据
  10. cocos2dx入门1:关于Cocos Creator