JAVA基础-JAVA11

本文介绍了Java 11中的一些重要新特性,包括变量类型推断,使用var关键字简化代码;集合加强,如List.of创建不可变列表;Stream API的扩展,新增takeWhile和dropWhile方法,它们与filter的区别在于是否立即终止遍历;以及Optional的改进,提供了更方便的空值处理方式。通过这些特性,Java 11提升了代码的简洁性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①:变量类型推断

var code="java";
String code ="java";

var声明变量可以自动推断类型

②:集合加强

List.of("java","C++","PY");

生成一个不可变的List,说白了就是成一个阉割的数组了

(不能进行添加、删除、替换、排序等操作)

    static final class ListN<E> extends ImmutableCollections.AbstractImmutableList<E> implements Serializable {
        @Stable
        static List<?> EMPTY_LIST;
        @Stable
        private final E[] elements;

        @SafeVarargs
        ListN(E... input) {
            E[] tmp = new Object[input.length];

            for(int i = 0; i < input.length; ++i) {
                tmp[i] = Objects.requireNonNull(input[i]);
            }

            this.elements = tmp;
        }

③:Stream加强
加了takeWhile()和dropWhile()方法(此处注意这块要和filter区分开)

Stream.of(5, 4, 3, 2, 1)
            .takeWhile(n -> n > 3).collect(Collectors.toList());
Stream.of(5, 4, 3, 2, 1)
            .filter(n -> n > 3).collect(Collectors.toList());

虽然他俩的结果都是[5, 4]
但不同的是:takeWhile当发现不符合条件的直接就断路结束

而filter是全部遍历一遍选出合适的不存在断路操作

④:Optional加强

自定义异常(Java8并非11新特性)

 Optional.ofNullable(dd).orElseThrow(() -> new NoSuchMethodError());
//源码得传入无参的逻辑
public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {

直接转stream

Optional.ofNullable(List.of("java", "C++", "PY")).stream();

optional空代替

 Optional.ofNullable(null).or(()->Optional.of("C++"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值