Java最新Java 9 - 17 特性解读:Java 9,熬夜整理Java面试笔试题

写在最后

为了这次面试,也收集了很多的面试题!

以下是部分面试题截图

Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

Stream APIStream进一步得到了加强。

ofNullable

Stream<T> ofNullable(T t)  返回包含单个元素的顺序Stream ,如果非空,否则返回空Stream 。这个比较简单就不举例了。

iterate

Stream iterate(T seed, Predicate<? super T> hasNext, UnaryOperator next)

这个是用来生成有限流的新迭代实现。

  • seed 初始种子值

  • hasNext 用来判断何时结束流,这个与seed有关。如何该函数不迭代保留seed计算,返回的流可能为空。

  • next函数用来计算下一个元素值。

举个例子:

Stream.iterate(0, i -> i < 5, i -> i + 1)

.forEach(System.out::println);

等同于传统的:

for (int i = 0; i < 5; ++i) {

System.out.println(i);

}

takeWhile

Stream.takeWhile(Predicate)   Stream中元素会被断言Predicate,一旦元素断言为false就中断操作,忽略掉没有断言的元素(及时未断言中的元素有满足条件的),仅仅把之前满足元素返回。

Stream.of(1, 2, 3, 4, 2, 5)

.takeWhile(x -> x < 4)

.forEach(System.out::println);

上面的例子中只会输出123

dropWhile

这个API和takeWhile机制类似,也用来筛选Stream中的元素。不过符合断言的元素会被从Stream中移除。一旦元素断言为false,就会把断言为false的元素以及后面的元素统统返回。

Stream.of(1, 2, 3, 4, 2, 5)

.dropWhile(x -> x < 4)

.forEach(System.out::println);

上面的例子会输出425

filter操作可不一样啊,切记!

Optional扩展

Optional增加了三个有用的API。

  • stream()  Optional现在可以转Stream

  • ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)    如果有值了怎么消费,没有值了怎么消费。

  • or(Supplier<? extends Optional<? extends T>> supplier) 如果有值就返回有值的Optional,否则就提供能获取一个有值的Optional的渠道(Supplier)。

try-with-resources 优化

在Java 7 中引入了try-with-resources功能,保证了每个声明了的资源在语句结束的时候都会被关闭。任何实现了java.lang.AutoCloseable接口的对象,和实现了java.io.Closeable接口的对象,都可以当做资源使用。

在Java 7中需要这样写:

try (BufferedInputStream bufferedInputStream = new BufferedInputStream(System.in);

BufferedInputStream bufferedInputStream1 = new BufferedInputStream(System.in)) {

// do something

} catch (IOException e) {

e.printStackTrace();

}

而到了Java 9简化为:

BufferedInputStream bufferedInputStream = new BufferedInputStream(System.in);

BufferedInputStream bufferedInputStream1 = new BufferedInputStream(System.in);

try (bufferedInputStream;

bufferedInputStream1) {

// do something

} catch (IOException e) {

e.printStackTrace();

}

接口私有方法

继Java 8 引入了接口静态方法和接口默认方法后,又引入了接口私有方法:

public interface Catable {

/**

* 接口私有方法

*/

private void doSomething() {

}

}

引入HttpClient

定义一个新的 HTTP 客户端 API 来实现 HTTP/2 和 WebSocket,并且可以替换旧的HttpURLConnectionAPI。Java以前原生的确实难用,所以诞生了Apache HttpClientComponents 、OkHttp等好用的客户端。新的也不怎么好用,不过也算从零到一了。

HttpRequest httpRequest = HttpRequest.newBuilder(newURI)

总结:绘上一张Kakfa架构思维大纲脑图(xmind)

image

其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?

若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理

梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。

  • Kafka入门

  • 为什么选择Kafka

  • Kafka的安装、管理和配置

  • Kafka的集群

  • 第一个Kafka程序

  • Kafka的生产者

  • Kafka的消费者

  • 深入理解Kafka

  • 可靠的数据传递

  • Spring和Kafka的整合

  • SpringBoot和Kafka的整合

  • Kafka实战之削峰填谷

  • 数据管道和流式处理(了解即可)

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

[外链图片转存中…(img-3rzllXto-1715370254497)]

[外链图片转存中…(img-qa1r0m9z-1715370254497)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值