-
# 配置多版本JDK
5 ## 配置JDK1.8 JDK11 JDK12
6 export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
7 export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
8 export JAVA_12_HOME=/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home
9
10 ## 默认的JDK版本
11 export JAVA_HOME=$JAVA_8_HOME
12 export PATH=$PATH:$JAVA_HOME/bin
13
14 ## 设置别名,方便切换JDK版本
15 alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
16 alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
17 alias jdk12="export JAVA_HOME=$JAVA_12_HOME"
查看全部 -
JDK11 新特性介绍—— JEP181: 基于嵌套的访问控制
查看全部 -
配置多版本 JDK 步骤
查看全部 -
安装 JDK 步骤
查看全部 -
JDK12 其他新特性
查看全部 -
JDK12 重要的新特性
查看全部 -
JDK11 其他新特性
查看全部 -
JDK11 重要的新特性
查看全部 -
export JAVA_11_HOME="~/imooc_-jdk11_12/jdk-11.0.2.jdk/Contents/Home" export JAVA_12_HOME="~/imooc_jdk11_12/jdk-12.jdk/Contents/Home" export JAVA_HOME=$JAVA_11_HOME export PATH=$PATH:$JAVA_HOME/bin alias jdk11="export JAVA_HOME=$JAVA_11_HOME"alias jdk12="export JAVA_HOME=$JAVA_12_HOME"
查看全部 -
多版本JDK的安装和配置
◆配置多版本JDK
√设置多版本环境变量:JAVA_8_HOME、JAVA_11_HOME、JAVA_12_HOME
√配置默认环境变量:JAVA_HOME
√设置命令别名,动态切换JDK版本:alias√查看JDK版本信息:java-version查看全部 -
3-11 JDK11 其他新特性
查看全部 -
import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; public class LocalVarExample { /** * java8特性:lambda表达式语法 */ public static void lambdaInJava8() { new Thread(new Runnable() { @Override public void run() { System.out.println("before java8"); } }).start(); new Thread(()-> System.out.println("in java8")).start(); List<String> list = Arrays.asList("java8","jdk8","1.8"); list.forEach(w->{ System.out.println("lambda in java8->"+w); }); } /** *Java10 新特性:局部变量类型推断 */ private static void varInJava10(){ int var =10; var i =10; var str = "java10"; var list = new ArrayList<String>(); var map = Map.of(1,"a",2,"b"); for(var entry : map.entrySet()){ System.out.println(entry); } } /** *Java11 新特性:允许var在声明隐式类型的lambda表达式的形式参数时使用 */ private static void lambdaWithVarInJava11 (){ List<Integer> nums = Arrays.asList(9,11,23,3,7,2,8); // nums.sort((s1,s2)->{ // if(s1.equals(s2)){ // return 0; // }else{ // return s1 > s2 ? 1:-1; // } // }); nums.sort((@NotNull var s1, @NotNull var s2)->{ if (s1.equals(s2)) { return 0; } else { return s1 > s2 ? 1 : -1; } }); nums.sort((s1,s2)-> s1 > s2 ? 1:-1); System.out.println(nums); } /** * Lambda参数的本地变量语法 */ public static void main(String[] args) { // lambdaInJava8(); // varInJava10(); lambdaWithVarInJava11(); } }
查看全部 -
import java.util.concurrent.TimeUnit; /** * 改进Aarch64函数 */ public class Aarch64Example { public static void mathOnJdk11() { long startTime = System.nanoTime(); for (int i = 0; i < 100000000; i++) { Math.sin(i); Math.cos(i); Math.log(i); } long endTime = System.nanoTime(); System.out.println(TimeUnit.NANOSECONDS.toMillis(endTime-startTime)+"ms"); } public static void main(String[] args) { mathOnJdk11(); } }
查看全部 -
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; /** * 动态语言API测试 */ public class DynamicTest { private static void test(){ System.out.println("动态语言API测试"); } public static void main(String[] args) throws Throwable { // public方法的Lookup // MethodHandles.Lookup publicLookup = MethodHandles.publicLookup(); // 所有方法的Lookup MethodHandles.Lookup lookup = MethodHandles.lookup(); MethodHandle mh = lookup.findStatic(DynamicTest.class,"test", MethodType.methodType(void.class)); mh.invokeExact(); } }
查看全部 -
动态语言API测试
查看全部
举报