上课要求jdk版本1.8.0而我的版本是jdk11,有什么区别

上面对对象课程,要求课下配置自己的电脑。

jdk版本迭代都是根据上一代进行增添新功能。djk11在1.8版本上只是添加了少许新内容以适应现在互联网du技术节奏,除了新添加的内容,两者没有什么影响。也就是,如果不用到新添加的内容,运行不受影响。但是需要知道,有哪些内容是新的。

JDK1.8的新特性:

一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法。

二、Lambda 表达式在Java 8 中你就没必要使用这种传统的匿名对象的方式了,Java 8提供了更简洁的语法,lambda表达式:

Collections.sort(names, (String a, String b) -> {return b.compareTo(a);});

三、函数式接口Lambda表达式是如何在java的类型系统中表示的,每一个lambda表达式都对应一个类型,通常是接口类型。

而“函数式接口”是指仅仅只包含一个抽象方法的接口,每一个该类型的lambda表达式都会被匹配到这个抽象方法。因为默认方法不算抽象方法,所以也可以函数式接口添加默认方法。

四、方法与构造函数引用Java 8 允许你使用 :: 关键字来传递方法或者构造函数引用,上面的代码展示了如何引用一个静态方法,我们也可以引用一个对象的方法:

converter = something::startsWith;

String converted = converter.convert("Java");

System.out.println(converted);

五、Lambda 作用域在lambda表达式中访问外层作用域和老版本的匿名对象中的方式很相似。你可以直接访问标记了final的外层局部变量,或者实例的字段以及静态变量

六、访问局部变量可以直接在lambda表达式中访问外层的局部变量:

七、访问对象字段与静态变量 和本地变量不同的是,lambda内部对于实例的字段以及静态变量是即可读又可写。该行为和匿名对象是一致的:

八、访问接口的默认方法JDK 1.8 API包含了很多内建的函数式接口,在老Java中常用到的比如Comparator或者Runnable接口,这些接口都增加了@FunctionalInterface注解以便能用在lambda上。

Java 8 API同样还提供了很多全新的函数式接口来让工作更加方便,有一些接口是来自Google Guava库里的,即便你对这些很熟悉了,还是有必要看看这些是如何扩展到lambda上使用的。

扩展资料:

jdk11新特性:

1、字符串加强

// 判断字符串是否为空白" ".isBlank(); // true// 去除首尾空格" Javastack ".strip(); // "Javastack"// 去除尾部空格 " Javastack ".stripTrailing()。

// 去除首部空格 " Javastack ".stripLeading(); // "Javastack "// 复制字符串"Java".repeat(3); // "JavaJavaJava"// 行数统计"A\nB\nC".lines().count(); // 3

2、HttClient Api

这是 Java 9 开始引入的一个处理 HTTP 请求的的孵化 HTTP Client API,该 API 支持同步和异步,而在 Java 11 中已经为正式可用状态,你可以在java.net包中找到这个 Api

3、用于 Lambda 参数的局部变量语法

用于 Lambda 参数的局部变量语法简单来说就是支持类型推导:

var x = new A();for (var x : xs) { ... }try (var x = ...) { ... } catch ...

4、ZGC

从JDK 9开始,JDK使用G1作为默认的垃圾回收器。G1可以说是GC的一个里程碑,G1之前的GC回收,还是基于固定的内存区域,而G1采用了一种“细粒度”的内存管理策略,不在固定的区分内存区域属于surviors、eden、old。

而我们不需要再去对于年轻代使用一种回收策略,老年代使用一种回收策略,取而代之的是一种整体的内存回收策略。

这种回收策略在我们当下cpu、内存、服务规模都越来越大的情况下提供了更好的表现,而这一代ZGC更是有了突破性的进步。

从原理上来理解,ZGC可以看做是G1之上更细粒度的内存管理策略。由于内存的不断分配回收会产生大量的内存碎片空间,因此需要整理策略防止内存空间碎片化。

在整理期间需要将对于内存引用的线程逻辑暂停,这个过程被称为"Stop the world"。只有当整理完成后,线程逻辑才可以继续运行。



温馨提示:内容为网友见解,仅供参考
第1个回答  2021-08-04

jdk版本迭代都是根据上一代进行增添新功能。djk11在1.8版本上只是添加了少许新内容以适应现在互联网du技术节奏,除了新添加的内容,两者没有什么影响。



也就是,如果不用到新添加的内容,运行不受影响。但是需要知道,有哪些内容是新的。

JDK1.8的新特性:

一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法。

二、Lambda 表达式在Java 8 中你就没必要使用这种传统的匿名对象的方式了,Java 8提供了更简洁的语法,lambda表达式:Collections.sort(names, (String a, String b) -> {returnb.compareTo(a);})。

三、函数式接口Lambda表达式是如何在java的类型系统中表示的,每一个lambda表达式都对应一个类型,通常是接口类型。而“函数式接口”是指仅仅只包含一个抽象方法的接口,每一个该类型的lambda表达式都会被匹配到这个抽象方法。因为默认方法不算抽象方法,所以也可以函数式接口添加默认方法。 

四、方法与构造函数引用Java 8 允许你使用关键字来传递方法或者构造函数引用,上面的代码展示了如何引用一个静态方法,我们也可以引用一个对象的方法。

converter = something::startsWith。

String converted = converter.convert("Java")。

System.out.println(converted)。

五、Lambda 作用域在lambda表达式中访问外层作用域和老版本的匿名对象中的方式很相似。你可以直接访问标记了final的外层局部变量,或者实例的字段以及静态变量。


JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

以上内容参考:百度百科-jdk

本回答被网友采纳
第2个回答  2021-08-18

jdk版本迭代都是根据上一代进行增添新功能。djk11在1.8版本上只是添加了少许新内容以适应现在互联网du技术节奏,除了新添加的内容,两者没有什么影响。



也就是,如果不用到新添加的内容,运行不受影响。但是需要知道,有哪些内容是新的。

JDK1.8的新特性:

一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法。

二、Lambda 表达式在Java 8 中你就没必要使用这种传统的匿名对象的方式了,Java 8提供了更简洁的语法,lambda表达式:Collections.sort(names, (String a, String b) -> {returnb.compareTo(a);})。

三、函数式接口Lambda表达式是如何在java的类型系统中表示的,每一个lambda表达式都对应一个类型,通常是接口类型。而“函数式接口”是指仅仅只包含一个抽象方法的接口,每一个该类型的lambda表达式都会被匹配到这个抽象方法。因为默认方法不算抽象方法,所以也可以函数式接口添加默认方法。 

四、方法与构造函数引用Java 8 允许你使用关键字来传递方法或者构造函数引用,上面的代码展示了如何引用一个静态方法,我们也可以引用一个对象的方法。

converter = something::startsWith。

String converted = converter.convert("Java")。

System.out.println(converted)。

五、Lambda 作用域在lambda表达式中访问外层作用域和老版本的匿名对象中的方式很相似。你可以直接访问标记了final的外层局部变量,或者实例的字段以及静态变量


JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

本回答被网友采纳
第3个回答  2019-03-04
区别并不是很大,djk11在1.8版本上只是添加了少许新内容以适应现在互联网技术节奏,除了新添加的内容,两者没有什么影响。也就是,如果你不用到新添加的内容,运行不受影响。但是你需要知道,有哪些内容是新的。本回答被网友采纳
第4个回答  2019-07-16
一般的学校上课1.8.0就够使用了,要是不确定就下载两个,到时候改下环境变量就可以切换版本了
下载好想用的jdk版本,然后修改环境变量就可以修改你用的jdk版本了,话句话说将你的配置的环境变量JAVA_HOME 中的路径改成你想用的jdk路径就可以修改你的jdk版本了本回答被提问者采纳

上课要求jdk版本1.8.0而我的版本是jdk11,有什么区别
jdk版本迭代都是根据上一代进行增添新功能。djk11在1.8版本上只是添加了少许新内容以适应现在互联网du技术节奏,除了新添加的内容,两者没有什么影响。也就是,如果不用到新添加的内容,运行不受影响。但是需要知道,有哪些内容是新的。JDK1.8的新特性:一、接口的默认方法Java 8允许我们给接口添加一...

jdk11和jdk1.8区别
jdk11少了jre的部分,而jdk1.8包含jre部分。是精简版与完整版的区别。

jdk1.8和java11哪个版本好?
1. 推荐JDK版本: 对于初学者,我们建议您优先考虑JDK 1.8或1.9,其中1.8是目前最广泛支持且功能强大的选择。不过,请注意Oracle可能对商业版收费,这可能影响新版本的推广速度。 2. JDK与JRE的差异: JDK是Java开发工具包,包含编译和运行工具,如System.out.println。与之相比,JRE是运行环境,...

怎么选择合适的JDK版本?
在选择合适的JDK版本时,需要考虑其更新内容与自身需求的匹配度。JDK8因其广泛使用,新增了Lambda表达式与Stream API,极大地提升了Java的特性与灵活性。JDK11的升级侧重于简化编码与加强网络编程,通过引入var关键字与新的HTTP客户端API实现。JDK17的更新则聚焦于类型安全与代码简洁性,新增了密封类与模式匹...

jdk11是jdk1·11吗
不是。jdk11版本出来的时间较晚,jdk1·11出来的时间较早,是jdk最初的版本之一,jdk11最新的版本之一。JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

jdk用哪个版本
JDK 8:作为早期版本的JDK之一,它广泛支持多种技术和工具,有着成熟的特性集和广泛的市场接受度。该版本广泛应用于企业级开发,特别是在遗留系统的维护方面。由于其稳定性和长期支持,许多企业和开发者仍然选择使用JDK 8。JDK 11:随着Java版本的更新,JDK 11带来了诸多新特性和性能优化。它是首个重视...

到底应该用哪个版本的JDK呢?
详情请查看视频回答

jdk下哪个版本
1. JDK 8:JDK 8是Java编程语言的一个非常流行的版本。它引入了许多新特性,如Lambda表达式、Stream API等,提高了Java编程的效率和便捷性。此外,它也在性能和内存管理等方面进行了优化。因此,许多企业和开发者仍然使用JDK 8。2. JDK 11:JDK 11是Oracle发布的长期支持版本,它引入了许多新特性,如...

eclipse一个开发工具,为啥要强制我的jdk版本?
可能是因为你这个版本前前代的版本出现了bug,所以的话必须要更新才能够恢复这个bug的。

我的电脑安装jdk11版本显示不兼容,但是我们老师要求我们使用最新版的...
你这是因为运行环境的JDK和编译环境的JDK版本不同造成的,在低运行版本的环境下运行高编译版本的内容一般就会报这个问题。

相似回答