Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2023年春招热点面试题(一)------新特性

2023年春招热点面试题(一)------新特性

作者头像
猫头虎
发布于 2024-04-08 05:57:45
发布于 2024-04-08 05:57:45
1520
举报

一、Spring 6.0 新特性

Spring 6.0是一个流行的Java框架,用于构建企业级应用程序。它的一些新特性包括:

Kotlin支持: Spring 6.0增加了对Kotlin的支持,这是一种运行在Java虚拟机(JVM)上的现代编程语言。这使得开发人员可以使用Kotlin编写Spring应用程序,并利用其简洁性,空安全性等特性。

响应式流: Spring 6.0包括一个基于响应式流API构建的响应式Web框架。该框架允许开发人员构建非阻塞的事件驱动应用程序,以处理高吞吐量的数据流

改进的测试支持: Spring 6.0包括改进的测试支持,使得开发人员更容易为应用程序编写测试。这包括诸如新的测试切片API,更好的支持测试响应式应用程序以及更好的测试安全特性等功能。

Java 17支持: Spring 6.0增加了对Java 17的支持,这是Java编程语言的最新版本。

新的Gradle构建系统: Spring 6.0引入了一个基于Gradle的新构建系统,取代了先前的基于Maven的系统。这个变化使得开发人员更容易管理依赖关系,构建应用程序。

二、Spring Boot 3.0 新特性

最低要求 Java 17 和 Java 19 支持 :Spring Boot 3.0 要求 Java 17 作为最低版本。如果你当前使用的是 Java 8 或 Java 11,则需要先升级 JDK,然后才能开发 Spring Boot 3.0 应用程序。Spring Boot 3.0 运行良好,并已通过 JDK 19 测试。

支持用 GraalVM 生成原生镜像,取代了实验性的 Spring Native 项目 :Spring Boot 3.0 应用程序现在可以转换为 GraalVM native images,这可以提供显着的内存和启动性能改进。支持 GraalVM Native Images 是整个 Spring 产品组合中的一项重大工程工作。要开始使用 GraalVM native images,可参阅更新后的 Spring Boot 参考文档。

通过 Micrometer 和 Micrometer 跟踪改进可观察性 :Spring Boot 3.0 支持在 Micrometer 1.10 中引入的新的 observation APIs。新的 ObservationRegistry 接口可用于创建观测值,该 observations 为度量和跟踪提供了单个 API。Spring Boot 现在为您自动配置ObservationRegistry实例。并且,Spring Boot 现在为您自动配置 Micrometer Tracing。这包括对 Brave、opentelemeter、Zipkin 和 Wavefront 的支持。

支持具有 EE 9 baseline 的 Jakarta EE 10 :对于所有依赖项,Spring Boot 3.0 已从 Java EE 迁移到 Jakarta EE api。

三、JDK 系列 新特性

A.JDK8新特性(2014年初)(LTS版本)

1、Lambda表达式

2、函数式编程

3、接口可以添加默认方法和静态方法,也就是定义不需要实现类实现的方法

4、方法引用

5、重复注解,同一个注解可以使用多次

6、引入Optional来避免空指针

7、引入Streams相关的API

8、引入新的Date/Time相关的API

9、新增jdeps命令行,来分析类、目录、jar包的类依赖层级关系

10、JVM使用MetaSpace代替了永久代(PermGen Space)

重要特性:Lambda表达式、函数式接口、方法引用、Stream流式API、采用MetaSpace代替了永久代(PermGen Space)

B. JDK9新特性(2017年9月)

1、接口方法可以使用private来修饰

2、设置G1为JVM默认垃圾收集器

3、支持http2.0和websocket的API

重要特性:主要是API的优化,如支持HTTP2的Client API、JVM采用G1为默认垃圾收集器

C.JDK10新特性(2018年3月)

1、局部变量类型推断,类似JS可以通过var来修饰局部变量,编译之后会推断出值的真实类型

2、并行Full GC,来优化G1的延迟

3、允许在不执行全局VM安全点的情况下执行线程回调,可以停止单个线程,而不需要停止所有线程或不停止线程

重要特性:通过var关键字实现局部变量类型推断,使Java语言变成弱类型语言、JVM的G1垃圾回收由单线程改成多线程并行处理,降低G1的停顿时间

D.JDK11新特性(2018年9月)(LTS版本)

1、ZGC,ZGC可以看做是G1之上更细粒度的内存管理策略。由于内存的不断分配回收会产生大量的内存碎片空间,因此需要整理策略防止内存空间碎片化,在整理期间需要将对于内存引用的线程逻辑暂停,这个过程被称为"Stop the world"。只有当整理完成后,线程逻辑才可以继续运行。(并行回收)

2、Flight Recorder(飞行记录器),基于OS、JVM和JDK的事件产生的数据收集框架

3、对Stream、Optional、集合API进行增强

重要特性:对于JDK9和JDK10的完善,主要是对于Stream、集合等API的增强、新增ZGC垃圾收集器

E.JDK12新特性(2019年3月)

1、Shenandoah GC,新增的GC算法

2、switch 表达式语法扩展,可以有返回值

3、G1收集器的优化,将GC的垃圾分为强制部分和可选部分,强制部分会被回收,可选部分可能不会被回收,提高GC的效率

重要特性:switch表达式语法扩展、G1收集器优化、新增Shenandoah GC垃圾回收算法

F.JDK13新特性(2019年9月)

1、Socket的底层实现优化,引入了NIO;

2、switch表达式增加yield关键字用于返回结果,作用类似于return,如果没有返回结果则使用break;

3、ZGC优化,将标记长时间空闲的堆内存空间返还给操作系统,保证堆大小不会小于配置的最小堆内存大小,如果堆最大和最小内存大小设置一样,则不会释放内存还给操作系统;

4、引入了文本块,可以使用"""三个双引号表示文本块,文本块内部就不需要使用换行的转义字符;

重要特性:ZGC优化,释放内存还给操作系统、socket底层实现引入NIO

G.JDK14新特性(2020年3月)

1、instanceof类型匹配语法简化,可以直接给对象赋值,如if(obj instanceof String str),如果obj是字符串类型则直接赋值给了str变量;

2、引入record类,类似于枚举类型,可以向Lombok一样自动生成构造器、equals、getter等方法;

3、NullPointerException打印优化,打印具体哪个方法抛的空指针异常,避免同一行代码多个函数调用时无法判断具体是哪个函数抛异常的困扰,方便异常排查;

H.JDK15新特性(2020年9月)

1、隐藏类 hidden class;

2、密封类 sealed class,通过sealed关键字修饰抽象类限定只允许指定的子类才可以实现或继承抽象类,避免抽象类被滥用;

I.JDK16新特性(2021年3月)

1、ZGC性能优化

2、instanceof模式匹配

3、record的引入

JDK16相当于是将JDK14、JDK15的一些特性进行了正式引入

J.JDK17新特性(2021年9月)(LTS版本)

1、正式引入密封类sealed class,限制抽象类的实现;

2、统一日志异步刷新,先将日志写入缓存,然后再异步刷新;

虽然JDK17也是一个LTS版本,但是并没有像JDK8和JDK11一样引入比较突出的特性,主要是对前几个版本的整合和完善。

结语

如果这篇文章对您有所帮助,或者有所启发的话,求一键三连:点赞、评论、收藏➕关注,您的支持是我坚持写作最大的动力。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java 11正式发布,这几个逆天新特性教你写出更牛逼的代码
就在前段时间,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用! 这无疑对我们来说是一大好的消息。作为一名java开发者来说,虽然又要去学习和了解java11,但内心还是欣慰的。我想至少你和我一样的心情:Java在手,天下我有!
格姗知识圈
2019/07/19
5730
Java 11正式发布,这几个逆天新特性教你写出更牛逼的代码
再见Java8!万字总结Java 9~15新特性!真香
你可以在 Archived OpenJDK General-Availability Releases 上下载自己需要的 JDK 版本!
Guide哥
2021/09/16
8620
是时候考虑升级 JDK 17 了
还在用 JDK 8 吗?Spring 已经推荐使用 JDK 17,是时候考虑升级了。
世开Coding
2022/12/02
1.2K0
是时候考虑升级 JDK 17 了
继 SpringBoot 3.0,Elasticsearch8.0 官宣:拥抱 Java 17
新版任你发,我用 Java 8,这可能是当下 Java 开发者的真实写照。不过时代可能真的要抛弃 Java 8,全面拥抱 Java 17 了。
jinjunzhu
2022/09/23
1K0
继 SpringBoot 3.0,Elasticsearch8.0 官宣:拥抱 Java 17
新旧 Java 特性结合:如何在实际项目中平滑过渡到 JDK 17 与 21?
许多开发者面临的问题是:如何平滑地将旧项目升级到 JDK 17 或 JDK 21?
猫头虎
2024/12/26
3710
Java10的新特性,你知道多少?
从Java 9发布到现在已经过去两个月了,根据最新的发布计划,距离下一个Java版本发布只有四个月时间。Java 10的新特性还在确认当中,所以从现在到GA版中间还是有可能加入重大的变更。不管怎样,在这四个月里,开发者还是可以期待一些新的特性能够被添加到Java 10中。
攻城狮的那点事
2019/06/28
5660
JDK8升级JDK11最全实践干货来了
Tech 导读 截至目前(2023年),Java8发布至今已有9年,2018年9月25日,Oracle发布了Java11,这是Java8之后的首个LTS版本。那么从JDK8到JDK11,到底带来了哪些特性呢?值得升级吗?而且升级过程会遇到哪些问题呢?带着这些问题,本篇文章将带来完整的JDK8升级JDK11最全实践。
京东技术
2023/09/26
1.3K0
JDK8升级JDK11最全实践干货来了
4.6 W 字总结!Java 11—Java 17特性详解
来源 | https://mp.weixin.qq.com/s/SVleHYFQeePNT7q67UoL4Q
用户1516716
2021/10/12
1.6K0
面试官问我Java8~14的有哪些重要的新特性,我哭了~~~
大家好,我是Guide哥!这篇文章来自读者的投稿,经过了两次较大的改动,两周的完善终于完成。Java 8新特性见这里:Java8新特性最佳指南 。
Guide哥
2020/05/06
6930
Java 9 ← 2017,2019 → Java 13 ,来看看Java两年来的变化
这个话题登上了微博的热搜榜,也刷爆了朋友圈,人们纷纷晒出自己2017和2019的照片对比。
java思维导图
2019/12/05
7770
Java 9 ← 2017,2019 →  Java 13 ,来看看Java两年来的变化
Spring6 正式发布!重磅更新,是否可以拯救 Java
Spring Framework6 和 Spring Boot3 是一个跨越式的升级整个框架支持的最低 JDK 版本直接跨越到 JDK17,无论框架层还是基础设施层都做了巨大的改变,Spring 6.0 新框架具体做了哪些功能的升级与改进,是否有必要升级与使用呢?可以继续看一看。
宋小生
2022/11/28
8.9K0
Spring6 正式发布!重磅更新,是否可以拯救 Java
【小家java】java10新特性(简述十大新特性) 小步迭代
需要注意的是,本次Java10并不是Oracle的官方LTS版本,所以咱们可以先了解新特性。然后坐等java11的发布再考虑在生产中使用吧
YourBatman
2019/09/03
9700
Java JVM 面试题
阿彬学java
2025/01/09
1380
技术 | 那些年,我们错过的Java新特性
2017年8月起,JCP执行委员将Java的发布频率改为每六个月一次,且每三年一个大的稳定版本。
程序员鱼皮
2020/11/25
7010
一文通晓Java历史各版本新特性
Java 作为一门经久不衰的语言,已经发展了20多年,本文简单罗列了各个版本的一些重要特性。大家可以根据自己公司需要,选择合适的版本。
微观技术
2020/08/20
1.2K0
Java12的新特性
对于需要返回值的switch expression要么正常返回值要么抛出异常,以下这两种写法都是错误的
code4it
2019/03/20
4.5K0
Java12的新特性
JDK17会代替JDK8吗?
但是随着Spring 6.0以及SpringBoot 3.0的发布,JDK17似乎大有取代JDK8的趋势了。
科技新语
2023/02/27
8190
这年头,能坐上火箭的东西不多啊!Java版本号算一个!
Sun早已经不在了,如今只剩Oracle,也就是Java目前的抚养人。从2019年4月16号开始,Oracle版本的JDK,已经宣布收费,目前有更多的企业转向OpenJDK。
xjjdog
2021/12/13
4180
JDK10 揭秘
前言 Java自1995年发布至今,已经度过23个年头;JAVA也已经推出了10个大的版本,2018年3月20日正式推出JDK10正式版本。新的版本也隐藏了许多新的奥秘,那么本课就将深入浅出的探究一下
阿凯
2018/06/29
6580
JDK17 与 JDK11 特性差异浅谈
JMH ,即 Java Microbenchmark Harness ,是专门用于代码微基准测试的工具套件。
政采云前端团队
2024/01/29
5470
JDK17 与 JDK11 特性差异浅谈
推荐阅读
相关推荐
Java 11正式发布,这几个逆天新特性教你写出更牛逼的代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档