2017/9/22,java 9正式发布了,带来了众多特性。本文是Java 9的初体验,简单介绍下Java 9 带来的新东西:
Java 9可以从官方下载了,其下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
安装及环境变量和以往的版本一样。安装配置后,输入java -version出现以下信息:
2. jshell 初探jshell是Java 9 新增的一个脚本工具,意思是可以在命令行里直接运行java的代码,而无需创建Java文件,然后再编译,最后运行。我觉得jshell的好处就是即写即得,平常只想看看几行代码运行的结果是怎么样的,有了jshell就方便多了,直接在命令行上敲。
2.1 jshell的简单实用在命令行输入“jshell”,即可进入jshell环境:
然后,怎么用呢?比如,输入 1+1:
结果输出$1 ==> 2,其中$1表示第一个临时变量。
看看,输出“hello world”:
我们再来看看方法的测试:
如果想修改方法,怎么办?重写吗?不用这样的亲,可以输入“/edit sum”,会弹出编辑界面:
这里的j是我们定义的变量,所以它没有”$”符号。
我们可以用“/list”来查看当前我们所运行的脚本:
然后,我们可以通过“/import”来查看脚本的默认导入的包:
最后,我们输入“/exit”来退出jshell环境:
这里我们就简单了介绍了下jshell的用法,具体的使用可以参考这篇文章:https://www.cnblogs.com/IcanFixIt/p/6690478.html
3. 模块化模块化是java 9最大的一个特性,它使得代码组织上更安全,因为它可以指定哪些部分可以暴露,哪些部分隐藏。
本质上讲,模块的概念,其实就是package外再裹一层,也就是说,用模块来管理各个package,通过声明某个package暴露,不声明默认就是隐藏。我们来看下具体的操作
3.1 Java 9模块的使用由于目前的IDE还不支持Java 9的特性,所以我们的实验只能手动编写、编译
创建结构目录如下:
StringUtils.java的内容需要注意的是:描述module信息的module-info.java必须放在module文件夹的根目录下。
编译首先cd到testjava9项目文件:
接着,开始编译:
运行javac –module-source-path src -d out src/com.bulong.first.module/com.bulong.example/*.java src/com.bulong.first.module/*.java
3.2 模块之间的依赖java –module-path out -m com.bulong.first.module/com.bulong.example.Hello
还是以刚才的例子,来看看模块之间如何依赖的。具体文件目录:
编译命令和上面一样:
javac –module-source-path src -d out src/com.bulong.second.module/com.bulong.test/*.java src/com.bulong.second.module/*.java
运行命令也一样:
java –module-path out -m com.bulong.second.module/com.bulong.test.Test
运行结果:
4. 小结本文仅仅简单的介绍了java 9的jshell以及模块化的使用。个人觉得java 9的模块化本质上就是重新组织了代码结构,在package外又包裹了一层module,让module来管理package,指定哪些package可以暴露。还有,module的引入,一定程度上会对jar包产生冲击,因为jar包里的package都是公开暴露的,相对于module模块显得不那么安全
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |