JDK新特性

一、jdk1.8新特性

1、Lambda表达式

List list = Arrays.asList(1, 2, 3, 4, 5);
list.forEach(n -> System.out.println(n));

2、方法引用

List list = Arrays.asList("Java", "Python", "C++", "PHP");
list.forEach(System.out::println);

3、Stream API

List list = Arrays.asList(1, 2, 3, 4, 5);
int sum = list.stream().filter(i -> i % 2 == 0).mapToInt(Integer::intValue).sum();
System.out.println("Sum of even numbers: " + sum);

二、jdk18新特性有哪些

1、类型注解

在方法参数、局部变量、泛型类等上面添加注解。

public  void genericMethod(T[] tArray) { 
   List list = new ArrayList(); 
   ...
}

2、重复注解

相同类型的注解可以在同一位置上重复使用。

@FavoriteFruits({@Fruit(name = "apple", color = "red"), @Fruit(name = "banana", color = "yellow")})
public class Person {
   ...
}

@Repeatable(FavoriteFruits.class)
@interface Fruit {
   String name();
   String color();
}

@Retention(RetentionPolicy.RUNTIME)
@interface FavoriteFruits {
   Fruit[] value();
}

3、类型推断(var关键字)

声明变量时,可以使用var关键字进行类型推断。

var list = new ArrayList(Arrays.asList("Java", "Python", "C++", "PHP"));
var stream = list.stream();

三、jdk11新特性

1、局部类型推断

在lambda表达式、try-with-resources语句中使用var。

var list = Arrays.asList(1, 2, 3, 4, 5);
var evenList = list.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());
try (var inputStream = new FileInputStream("file.txt")) {
    ...
}

2、字符串API增强

新增isBlank、lines、strip、stripLeading、stripTrailing等方法。

String str = "  hello world  ";
System.out.println(str.isBlank());
System.out.println(str.strip());
System.out.println(str.stripLeading());
System.out.println(str.stripTrailing());
System.out.println(str.lines().count());

3、HTTP客户端API

新增HttpClient类,可以用来进行HTTP/2协议的请求。

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://www.baidu.com"))
        .GET()
        .build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

以上是JDK新特性的一些亮点,现在的Java版本越来越强大,不断更新完善的特性也为我们开发提供了更多的选择。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/231686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-11 01:06
下一篇 2024-12-11 01:06

相关推荐

  • JDK Flux 背压测试

    本文将从多个方面对 JDK Flux 的背压测试进行详细阐述。 一、Flux 背景 Flux 是 JDK 9 对响应式编程的支持。它为响应式编程提供了一种基于推拉模型的方式,以支持…

    编程 2025-04-29
  • jmap是jdk里面的吗?

    jmap是JDK中的命令行工具,用于生成Java进程的堆转储快照。它是一个非常有用的工具,可以用于发现应用程序的内存泄漏和瓶颈。 一、jmap的作用 jmap是一个基于Java应用…

    编程 2025-04-28
  • burpsuite 免jdk

    burpsuite 可以说是渗透测试中最常用的一款工具之一,它可以帮助我们拦截和修改HTTP请求,还可以对这些请求进行分析和测试。而在使用过程中,我们有时会遇到一些坑点,比如安装需…

    编程 2025-04-27
  • 深入理解ES5新特性

    ES5是ECMAScript5的简称,它是JavaScript的一种标准,自2009年推出以来一直被广泛使用。相比之前的版本,ES5带来了许多新特性和更好的语法支持。在本文中,将会…

    编程 2025-04-25
  • CentOS 7安装JDK 1.8详解

    一、下载JDK 1.8安装文件 首先,为了在CentOS 7上安装JDK 1.8,我们需要从官方网站(http://www.oracle.com/technetwork/java/…

    编程 2025-04-25
  • 配置JDK的环境变量Win10

    一、下载JDK 在进行环境配置前,需要先下载对应的JDK。首先需要确认自己的Windows系统的位数(32位或者64位),然后从官网下载相应的JDK安装包。 下载链接:https:…

    编程 2025-04-25
  • Mac如何卸载JDK

    如果你在Mac上安装了多个版本的Java Development Kit(JDK),或者需要清理旧的JDK安装程序,那么本文将为你提供解决方案。我们将从如何卸载JDK的基础知识开始…

    编程 2025-04-24
  • Java8新特性概述

    Java8是Java语言发行版的一个主要版本,Java8于2014年3月发布,引入了许多新功能和语言特性。其中,最受欢迎和最重要的之一就是Lambda表达式。 一、Lambda表达…

    编程 2025-04-24
  • JDK-8u181-Linux-x64

    JDK-8u181-Linux-x64是一款在Linux平台下使用的一种工具开发包,该开发包包含了Java代码的编译器、库文件、Java运行环境以及其他一些实用的工具。 一、安装J…

    编程 2025-04-24
  • JDK怎么卸载干净

    在进行开发时,安装JDK是必要的,而有时候又需要将其卸载,但很多人不知道怎么卸载才能保证干净,下面从多个方面介绍JDK如何卸载干净。 一、检查JDK版本 在卸载JDK之前,需要确认…

    编程 2025-04-23

发表回复

登录后才能评论