首页 > 其他分享 >jdk17对比jdk8

jdk17对比jdk8

时间:2024-04-28 10:46:29浏览次数:23  
标签:case jdk17 System JDK17 jdk8 println 对比 API out

Lambda表达式
    /**
     * Lambda表达式
     */
    private static void lambda(){
        // JDK8
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
        list.forEach(n -> System.out.println(n));

        // JDK17
        List<Integer> list2 = Arrays.asList(1, 2, 3, 4, 5);
        //用到var.......
        list2.forEach((var n) -> System.out.println(n));
    }

 

Pattern Matching for instanceof
    /**
     * Pattern Matching for instanceof
     */

    private static void pattern(Object obj){
        // JDK8
        if (obj instanceof String) {
            String str = (String) obj;
            System.out.println(str.toUpperCase());
        } else {
            System.out.println(obj);
        }

        // JDK17
        if (obj instanceof String str) {
            System.out.println(str.toUpperCase());
        } else {
            System.out.println(obj);
        }
    }

 

新的集合操作API
    /**
     * 新的集合操作API
     * JDK8引入了Stream API,使得对集合的操作更加简洁和方便。JDK17在此基础上又增加了一些新的API,
     * 比如toList()和toSet()等,使得将Stream转换为List或Set变得更加简单。
     */

    private static void api(){
        // JDK8
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
        int sum = list.stream().filter(n -> n % 2 == 0).mapToInt(Integer::intValue).sum();

        // JDK17
        List<Integer> list2 = Arrays.asList(1, 2, 3, 4, 5);
        List<Integer> evenList = list2.stream().filter(n -> n % 2 == 0).toList();
        Set<Integer> oddSet = list2.stream().filter(n -> n % 2 != 0).collect(Collectors.toSet());
    }

 

改进的Switch语句
    /**
     * 改进的Switch语句
     * JDK17引入了新的Switch语句,支持使用表达式作为条件,同时也支持使用Lambda表达式作为分支语句。
     */
    private static void newSwitch(String dayOfWeek){
        // JDK8
        switch (dayOfWeek) {
            case "MON":
            case "TUE":
            case "WED":
            case "THU":
            case "FRI":
                System.out.println("Weekday");
                break;
            case "SAT":
            case "SUN":
                System.out.println("Weekend");
                break;
            default:
                System.out.println("Invalid day");
        }

        // JDK17
        String dayType = switch (dayOfWeek) {
            case "MON", "TUE", "WED", "THU", "FRI" -> "Weekday";
            case "SAT", "SUN" -> "Weekend";
            default -> {
                System.out.println("Invalid day");
                yield "Invalid day";
            }
        };
    }

 

新的HTTP Client API
    /**
     * 新的HTTP Client API
     * JDK11引入了新的HTTP Client API,使得对HTTP请求的处理变得更加简单和方便。
     */

    private static void client() throws Exception{
        // JDK8
        // 使用第三方HTTP库

        // JDK17
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://www.example.com/"))
                .build();
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }

 

 

标签:case,jdk17,System,JDK17,jdk8,println,对比,API,out
From: https://www.cnblogs.com/nxjblog/p/18163241

相关文章

  • OLAP开源引擎对比之历史概述
    前言OLAP概念诞生于1993年,工具则出现在更早以前,有史可查的第一款OLAP工具是1975年问世的Express,后来走进千家万户的Excel也可归为此类,所以虽然很多数据人可能没听过OLAP,但完全没打过交道的应该很少。这个概念主要是在大数据圈里流传,而在大数据领域里,目前主流的OLAP开源引擎都诞......
  • notepad++ 安装compare文件对比插件&失败解决办法
    1.首先notepad++安装compare方法:在菜单栏点击“插件”》插件管理   搜索:compare 点击YES 因为国内网络原因,可能会安装失败,也可能安装比较久。2.自己解压安装:  下载解压包:链接:https://pan.baidu.com/s/1B8hZJCJ8PLZgwdYzQeWGpQ提取码:7n2s  点击打开插件......
  • 2024-04-26 moment.js和day.js之用法和优缺点对比
    用法对比:Moment.js:时间戳转时间格式:moment(timestamp).format('YYYY-MM-DDHH:mm:ss')时间转时间戳:moment(dateString,'YYYY-MM-DDHH:mm:ss').valueOf()Day.js:时间戳转时间格式:dayjs(timestamp).format('YYYY-MM-DDHH:mm:ss')时间转时间戳:......
  • gRPC和HTTP的对比
    概述gRPC和HTTP是两种常见的网络通信协议,用于在客户端和服务器之间进行通信。它们具有不同的特点和适用场景,下面进行详细比较。HTTP(HypertextTransferProtocol)特点简单易用:HTTP使用简单的请求方法和状态码来进行通信,如GET、POST、200OK、404NotFound等。它易于理......
  • 大型企业不同安全域文件交换,常见方式的优势与问题对比
    现在越来越多的企业通过对网络进行物理或逻辑隔离,将内部网络与外部网络隔离开来,从而限制非法访问和恶意渗透,防止敏感数据泄露和恶意代码的传播,提高网络安全性。对于大型企业而言,将网络分为内外网并不足以满足安全管控的需求,它们会在内部再分割不同的安全域,如黄区、绿区、红区;如生......
  • word转pdf方案对比
    word转pdf方案对比Microsoftoffice套件基于Microsoftoffice需要安装office,跨平台收费Asposesdk收费,支持跨平台基于onlyoffice基于onlyoffice需要安装onlyoffice-documentserver,跨平台通过官方demo代码支持文件文件预览、在线编辑常用文件类型均支持安装部署为在线,耗......
  • 音视频厂商核心功能对比:腾讯云音视频/声网/即构
    当前实时音视频开发领域呈现出多样化竞争态势,其中声网(Agora)、即构(ZEGO)等云通讯企业占据了市场的主导地位。随着技术的持续进步和用户需求的日益多样化,选择音视频服务提供商的标准也越来越个性化,这不仅促进了音视频服务商之间的竞争更加激烈,也让用户在选择时更加注重产品的性能、......
  • 【前端】纯JS实现文本对比高亮显示
    1.参考demo1-1、连接:http://incaseofstairs.com/jsdiff/1-2、例子:2.页面<!DOCTYPEhtml><!--savedfromurl=(0033)http://incaseofstairs.com/jsdiff/--><html><head><metahttp-equiv="Content-Type"content="text/html;chars......
  • Ceph的crush算法与一致性hash对比介绍
    本文分享自天翼云开发者社区《Ceph的crush算法与一致性hash对比介绍》,作者:l****n首先,我们先回顾下一致性hash以及其在经典存储系统中的应用。一致性hash的基本原理一致性hash的基本思想是,有一个hash函数,这个hash函数的值域形成了一个环(收尾相接:thelargesthashvaluewraps......
  • Llama3-8B到底能不能打?实测对比
    前几天Meta开源发布了新的Llama大语言模型:Llama-3系列,本次一共发布了两个版本:Llama-3-8B和Llama-3-70B,根据Meta发布的测评报告,Llama-3-8B的性能吊打之前的Llama-2-70B,也就是说80亿参数的模型干掉了700亿参数的模型,这个还真挺让人震惊的。Llama-3-8B真的有这么强吗?鉴于8B的模型......