java11 jshell_java11
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相关推荐
- 5分钟学会Java 9~Java11的七大新特性
Java11 发布了,然而很多公司还在用Java 8 ,本文会简要介绍Java 9 -11 引入的新语法和API. 本地变量类型推断 Java 10 就已经引入了新关键词var,该关键词可以在声明局部 ...
- java11 新特性 详解
为什么80%的码农都做不了架构师?>>> 引言: 点击-->java10 新特性 详解 点击-->java9 新特性 详解 点击-->java8 新特性 详解 ...
- java11正式发布了,让java代码更完美
主题互动 Java11已经发布了,我们今天聊聊大家还停留在哪个版本呢?大家对于新版本的迅速的发布有什么想说的呢? 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以 ...
- Java11震撼发布了,我们该怎么办?
点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 2018微服务资源springboot.s ...
- Java11正式发布了,我们该怎么办?
主题互动 Java11已经发布了,我们今天聊聊大家还停留在哪个版本呢?大家对于新版本的迅速的发布有什么想说的呢? 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以 ...
- Java11 新特性
Java 11新特性的详细解释.JDK 11已经于 2018年9月25日正式发布,那么Java 11主要包含哪些新特性呢? JDK 11是Java SE 11平台版本11的开源参考实现,由JSR 38 ...
- java11+osgi_错误学习:Java + OSGi
java11+osgi 最近,我致力于在OSGi环境中使Apache Hive工作. 虽然没有被证明是小菜一碟(软件对吗?..为什么我不感到惊讶? ),它引导我解决了各种Java和OSGi错误. 在这 ...
- java8中方法区的内存大小如何设置_从Java8升级到Java11
奇技 · 指南 为什么选择Java11? 容器环境支持,GC等领域的增强,仅通过切换到 Java 11 就有 16% 的改进. 进行了瘦身,更轻量级,安装包体积小. JDK11 是一个长期支持版. 1 ...
- JAVA11 - ZGC 特性
JAVA11 - ZGC 特性 快速开始 ZGC全称是Z Garbage Collector,是一款可伸缩(scalable)的低延迟(low latency garbage).并发(concurre ...
最新文章
- iis php配置内部错误,iis 500 内部服务器错误 php
- boost::contract模块实现可选结果的测试程序
- 《炉石传说》架构设计赏析(2):Scene管理
- linux窗口黑边,解决deepin-scrot在gnome3截图顶部出现黑边问题
- 取消 Windows Server 2008 下“一个用户限制使用一个会话”
- DBM经历(六)UAT了
- 360手机助手电脑版 v2.4.0.1251 官方版
- menu在python中的意思_Python-Tkinter 组件之Menu
- 使用keybase给你的Github commit加上GPG Verified签名认证(keybase教程)
- 应用市场首发,APP推广如何应对
- PHP WEB程序设计信息表,WEB程序设计(PHP)2020知到答案全套
- 无人机技术的发展与应用
- 同城聚合平台v59.4.0 本地同城 同城信息 同城商家
- 【财务】FMS财务管理系统---应收管理
- FNDLOAD命令整合
- Gogs生产环境搭建和数据迁移指南
- 项目管理中的边边角角 之三
- python设定数值范围_Python 生成周期性波动的数据 可指定数值范围
- Vue实战篇二十八:实现一个手机版的购物车
- ArcGIS在城乡规划中的应用【1】——地形分析