第18.6.1章 JDK9的新特性—Java的REPL工具: jShell命令
6. 新语法结构
新的语法结构,为我们勾勒出了 Java 语法进化的一个趋势,将开发者从复杂、繁琐的低层次抽象中逐渐解放出来,以更高层次、更优雅的抽象,既降低代码量,又避免意外编程错误的出现,进而提高代码质量和开发效率。
6.1 Java的REPL工具: jShell命令
JDK9的新特性
Java 终于拥有了像Python 和 Scala 之类语言的REPL工具(交互式编程环境,read - evaluate - print - loop):jShell。以交互式的方式对语句和表达式进行求值。即写即得、快速运行。
利用jShell在没有创建类的情况下,在命令行里直接声明变量,计算表达式,执行语句。无需跟人解释”public static void main(String[] args)”这句"废话"。
使用举例
调出jShell
Microsoft Windows[版本10.0.22000.1574](c)Microsoft Corporation。保留所有权利。
C: \Users\WQC> jshell欢迎使用 JShell--版本11.0.17要大致了解该版本,请键入:/help intro
jshell>
获取帮助
jshell> /help intro
基本使用
jshe11>System.out.println("你好! wor1d");
你好!world
jshe11>int i =10;
i==>10
ishe11> int j=20;
j==>20
jshell> int k= i + j;
k==>30
jshell>System.out.print1n(k);
30
jshell> public int add(int m,int n){...> return m + n;...> }
| 已创建 方法 add(int,int)
jshell>int k = add(1,2);
k==>3
jshell>system.out.println(k);
3
导入指定的包
jshell> import java.util.*
默认已经导入如下的所有包:(包含java.lang包)
jshell> /imports
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
| import java.util.*
只需按下 Tab 键,就能自动补全代码 (部分关键字)
列出当前 session 里所有有效的代码片段
jshell> /list1 : System.out.println("你好! wor1d");2 : int i =10;3 : public int add(int m,int n){return m + n;}4 : import java.util.*;
查看当前 session 下所有创建过的变量
jshell> /var
| int i = 10
查看当前 session 下所有创建过的方法
jshell> /methods
| int add(int,int)
Tips:我们还可以重新定义相同方法名和参数列表的方法,即对现有方法的修改(或覆盖)。
使用外部代码编辑器来编写 Java 代码
从外部文件加载源代码【Happy.java】(txt编写,改后缀就行)
public void printSmile() {System.out.println("人活着嘛,开心最重要啦!");
}
printSmile();
使用/open命令调用
jshell> /open D:\Happy.java
人活着嘛,开心最重要啦!
退出jShell
jshell> /exit
| 再见
第18.6.1章 JDK9的新特性—Java的REPL工具: jShell命令相关推荐
- 第18章_MySQL8其它新特性(窗口函数、公用表表达式)
第18章_MySQL8其它新特性 第18章_MySQL8其它新特性 1. MySQL8新特性概述 1.1 MySQL8.0 新增特性 1.2 MySQL8.0移除的旧特性 2. 新特性1:窗口函数 2 ...
- 【MySQL 第18章_MySQL8其它新特性】
第18章_MySQL8其它新特性 1. MySQL8新特性概述 1.1 MySQL8.0 新增特性 1. 更简便的NoSQL支持 2.更好的索引 3. 更完善的JSON支持 4. 安全和账户管理 5. ...
- 第18章_MySQL8其它新特性
第18章_MySQL8其它新特性 1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本.MySQL 8版本在功能上做了显著的改进与增强,开发者 ...
- Atitit swt 4.3 4.4 4.5 新特性java attilax总结
Atitit swt 4.3 4.4 4.5 新特性java attilax总结 1.4.5 Release -June 3, 20151 1.1.Older Releases1 2.SWT 4.4. ...
- Jdk14 都要出了,Jdk9 的新特性还不了解一下?
来源:未读代码 Java 新特性系列已经从 Java 7 开始补充到 Java 9 了,每一篇的反馈都还不错.这个系列会持续更新到 Java 13 版本,然后在每个 Java 新版本发布时同步更新这个 ...
- Android进阶之光读书笔记——第一章:Android新特性
第一章 Android新特性 主要讲了一些Android 5.0.6.0.7.0新特性 1.1 Android 5.0新特性 Android 5.0 Lollipop是2014年10月发布的,那时候我 ...
- JDK9主要新特性介绍
1.Java 9 REPL (JShell) - 交互式编程环境 JShell 是 Java 9 新增的一个交互式的编程环境工具,允许无需使用类或者方法包来执行 Java 语句,可以直接 输入表达式并 ...
- JDK8和JDK9【新特性】
一.接口的新特性 概述 jdk8之前接口是规则的集合体,方法只有抽象方法. jdk8版本开始不仅有抽象方法同时增加了带实现的方法. 增加内容 jdk8: 默认方法 default ...
- Java SE 6 新特性: Java DB 和 JDBC 4.0
http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...
最新文章
- 【数据库】mysql 常用命令(一)
- Java并发学习二:编译优化带来的有序性问题导致的并发Bug
- 大连网络推广浅析网站如何实现加快收录的方法?
- java.lang.IllegalArgumentException: pointerIndex out of range
- 谈一谈我对前端的学习路线及方法的一些心得
- selenium webdriver python 元素操作
- Ubuntu配置maven
- Nancy之Cache的简单使用
- 生活中常见物联网实例_包邮赠书| 什么是物联网?常见IoT 物联网协议最全讲解...
- DEA博弈交叉效率matlab,基于博弈交叉效率DEA模型的服务模块化创新绩效测量—以江西省文化创意产业为例...
- python输出最大的素数_Python中的最大素数回文
- 永磁直流无刷电机设计之路(三)——电磁参数设计
- shell获取主机信息并根据定时任务发送邮件到手机
- 在日本做科研工作是怎样的体验?
- 我的编程之路(三) 蜗居
- mysql数据库在线测试_测试面试题集-MySQL数据库灵魂拷问
- 跟着b站大学学习C语言--哔哩大学计算机学院
- Html5弹幕视频播放器插件Danmu介绍
- dom绑定click事件无效及解决办法
- 美团点评2020校招笔试题1(栈,堆)