1、JDK9新特性---jshell交互式工具
前提是已经配置好了Jdk的环境变量。
2、JDK9新特性---模块化开发
需求:
testA可以被模块A调用,testB可能是内部工具类,不想被模块A调用,又不能设置成private。
这时候我们就会用到模块化开发。
Java8应用程序将包作为顶级组件,Java9应用程序将模块作为顶级组件。
使用module-info.java来声明一个模块,一个模块只能有一个文件,且在顶层包同目录下
使用exports来声明可以被外部引用的包,可以有多个exports语句
使用requires来声明依赖的外部的模块,可以有多个requires语句
1、 创建一个空项目jdkNews,和两个Java项目TestA和TestB。
2、在TestA和TestB中分别创建module-info.java文件。
3、在TestA模块的module-info.java文件中添加需要导入的模块。
module TestA {
requires TestB;
}
4、在TestB模块的module-info.java文件中添加可以访问的包名。
module TestB {
exports com.wei.first;
}
3、JDK10新特性---使用var来修饰局部变量
> 必须能推导出实际类型,包括基础数据类型。
> 只能用于局部变量。
public class MyUse {
// 使用var报错 不能修饰全局变量
// var testA1 = new TestA();
public static void main(String[] args) {
// 都是可以使用var的
var testA1 = new TestA();
var i = 8;
var list = new ArrayList<>();
// 使用var报错
// var str;
// var array = null;
}
}
4、JDK11新特性---单文件程序
直接命令运行:java xxx.java
必须带.java
方便初学者学习
1、编写文件
public class OneFileTest {
public static void main(String[] args) {
System.out.println("You Are Herro!!");
}
}
2、 在终端进入到文件的指定目录,直接命令运行:java OneFileTest.java
5、JDK11新特性---shebang脚本
1/什么是shebang?
#!符号可以叫做shebang,翻译成释伴,即"解释伴随行"的简称,同时又是shebang的音译。
2、将java文件改成sh后缀,OneFileTest.sh
第一行 为jdk中Java指令的路径 。
如果配置过环境变量,也可以直接写成 #!/bin/java
#!/Library/Java/JavaVirtualMachines/jdk-17.0.4.1.jdk/Contents/Home/bin/java
public class OneFileTest {
public static void main(String[] args) {
System.out.println("You Are Herro!!");
}
}
3、在终端中进入到文件的包路径,使用如下命令可运行 java --source 11 SheBangTest.sh