Java 9 入门初体验
来源:互联网 发布:解码矩阵 编辑:程序博客网 时间:2024/06/05 06:44
前言
2017/9/22,java 9正式发布了,带来了众多特性。本文是Java 9的初体验,简单介绍下Java 9 带来的新东西:
- jshell(java脚本运行环境)
- modularity(模块化)
相关文章介绍:https://mp.weixin.qq.com/s/Onj9ZJYbV5pLTAPcYBJREA
1. 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的内容
package com.bulong.example;public class StringUtils { public static String getUpper(String str) { return str.toUpperCase(); // 转成大写 }}
Hello.java的内容
package com.bulong.example;public class Hello { public static void main(String[] args) { String str = StringUtils.getUpper("Hello world, hello java 9"); System.out.println(str); }}
module-info.java的内容
module com.bulong.first.module { exports com.bulong.example; // 声明暴露com.bulong.example}
需要注意的是:描述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
运行
java –module-path out -m com.bulong.first.module/com.bulong.example.Hello
3.2 模块之间的依赖
还是以刚才的例子,来看看模块之间如何依赖的。具体文件目录:
编译命令和上面一样:
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模块显得不那么安全…
补充一下:最新版的IDEA支持Java 9…具体的操作可以参考这篇文章:http://www.jianshu.com/p/7ea5fab6e835
- Java 9 入门初体验
- Java入门 第一季第一章 Java初体验
- JAVA入门第一季-1.JAVA初体验
- RxJava入门初体验
- Weex入门初体验
- Kotlin 入门初体验
- Tensorflow入门初体验
- OpenCV入门初体验
- cucumber java从入门到精通(1)初体验
- nutch 初体验-入门篇
- 入门初体验第一天
- Echarts入门之初体验
- IOS开发入门初体验
- RxJava/RxAndroid 入门初体验
- java之初体验
- java初体验
- java初体验
- java 初体验
- 五种主要多核并行编程方法分析与比较
- verilog中对inout信号的处理
- shiro拦截AJAX的返回json字符串
- 前端笔试题:返回 string 的情况
- LeetCode Valid Palindrome(验证回文字符串)
- Java 9 入门初体验
- 浅谈多重积分及其计算
- js 斐波那契数列 汉诺塔 阶乘递归常见小算法
- Windows Practice_Dll&Hook_Hook是什么?
- 王爽 《汇编语言》 读书笔记 十七
- ImageSmoother
- 根据手柄操控仿真机器人
- 重学设计模式(一) -- 工厂模式
- 石油大学OJ组队赛11 C 三元排序