小滴课堂-学习笔记:(12) Java高级核心之玩转JDK10和JDK11常见特性

海量数据大课学习笔记(9)-架构核心技术-池化思想-异步结合 性能优化最佳实践《上》-小滴课堂 小滴课堂,旨在让编程不在难学,让技术与生活更加有趣。随着互联网+的时代,在线教育技术越来越便捷,小滴课堂依托在线教育时间以及空间上的便利,为广大IT从业者提供了更为方便、快捷的学习交流途径、提供大量高质量的IT在线课程。更多教程请访问xdclass.net简介:讲解Jmeter里面GUI菜单栏主要组件添加->threads->线程组(控制总体并发)线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。......... 阅读详情

logo 愿景:"让编程不再难学,让技术与生活更加有趣"


更多架构课程请访问 xdclass.net

 

目录

第1集 JDK10之局部变量类型推断var讲解

第2集 JDK11之新增HttpClient客户端快速入门

第3集 JDK11之标准HttpClient提交Post和异步请求

第4集 JDK11之标准HttpClient提交Http2请求

第5集 JDK11之javac和java命令优化

干货文档


第1集 JDK10之局部变量类型推断var讲解

简介:讲解JDK10新增局部变量类型推断var

  • Java是一种强类型, 许多流行的编程语言都已经支持局部变量类型推断,如js,Python,C++等

  • JDK10 可以使用var作为局部变量类型推断标识符

    • Local-Variable Type Inference(局部变量类型推断),顾名思义只能用做为局部变量

    • 注意

      • 仅适用于局部变量,如 增强for循环的索引,传统for循环局部变量

      • 不能使用于方法形参、构造函数形参、方法返回类型或任何其他类型的变量声明

      • 标识符var不是关键字,而是一个保留类型名称,而且不支持类或接口叫var,也不符合命名规范

      • 可以用jshell试验或者IDEA

        //根据推断为 字符串类型
        var strVar = "springboot";
        System.out.println(strVar instanceof String);
        
        //根据10L 推断long 类型
        var longVar = 10L;
​
        //根据 true推断 boolean 类型
        var flag = true;
        //var flag = Boolean.valueOf("true");
        //System.out.println(flag instanceof Boolean);
​
        // 推断 ArrayList<String>
        var listVar = new ArrayList<String>();
        System.out.println(listVar instanceof ArrayList);
        
        // 推断 Stream<String>
        var streamVar = Stream.of("aa", "bb", "cc");
        System.out.println(streamVar instanceof Stream);
​
        if(flag){
            System.out.println("这个是 flag 变量,值为true");
        }
​
        for (var i = 0; i < 10; i++) {
            System.out.println(i);
        }
        
        try (var input = new FileInputStream("validation.txt")) {
​
        }
​

 

第2集 JDK11之新增HttpClient客户端快速入门

简介:讲解JDK11新增Http客户端

  • 这个功能在JDK 9中引入并在JDK 10中得到了更新

  • 最终JDK11正式发布,支持 HTT/1.1, HTTP/2,(JDK10相关课程里面未讲解该知识点)

  • 官方文档 http://openjdk.java.net/jeps/321

  • 常用类和接口讲解

    • HttpClient.Builder

      • HttpClient 构建工具类

    • HttpRequest.Builder

      • HttpRequest 构建工具类

    • HttpRequest.BodyPublisher

      • 将java 对象转换为可发送的HTTP request body字节流, 如form表单提交

    • HttpResponse.BodyHandler

      • 处理接收到的 Response Body

     

  • 创建HttpClient, 下面结果是一致的底层调用

     //var httpClient = HttpClient.newBuilder().build();
       var httpClient = HttpClient.newHttpClient();
    

     

  • 创建get请求

    //private static final String targetUrl = "http://api.xdclass.net/pub/api/v1/web/all_category";
     private static final URI uri = URI.create(targetUrl);
        
        //GET请求
        private static void testGet() {
            //var httpClient = HttpClient.newHttpClient();
            //设置建立连接超时 connect timeout
            var httpClient = HttpClient.newBuilder().connectTimeout(Duration.ofMillis(5000)).build();
    ​
    ​
            //设置读取数据超时 read timeout
        var request = HttpRequest.newBuilder().timeout(Duration.ofMillis(3000))
                    .header("key1", "v1")
                    .header("key2", "v2")
                    .uri(uri).build();
            try {
                var response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
                System.out.println(response.body());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    ​
    
    
    
    
    
    
    

     

第3集 JDK11之标准HttpClient提交Post和异步请求

简介:讲解JDK11新增Http客户端提交post请求和异步请求

  • 使用HttpClient提交Post请求

    private static final String targetUrl ="https://api.xdclass.net/pub/api/v1/web/web_login";
    private static final URI uri = URI.create(targetUrl);
    ​
    //POST请求
        private static void testPost() {
            var httpClient = HttpClient.newHttpClient();
            var request = HttpRequest.newBuilder()
                    .uri(uri)
    ​
                    //json格式则使用下面数据
                    //.header("Content-Type", "application/json")
                    //.POST(HttpRequest.BodyPublishers.ofString("{\"phone\":\"13113777337\",\"pwd\":\"1234567890\"}"))
    ​
                    //form表单则使用下面配置
                    .header("Content-Type", "application/x-www-form-urlencoded")
                    .POST(HttpRequest.BodyPublishers.ofString("phone=13113777337&pwd=1234567890"))
                    .build();
    ​
            try {
                var response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
                System.out.println(response.body());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

     

  • 使用HttpClient提交异步GET请求

 //异步GET请求
 //private static final String targetUrl = "http://api.xdclass.net/pub/api/v1/web/all_category";
 private static final URI uri = URI.create(targetUrl);
 
 //异步请求通过CompletableFuture实现。
    private static void testAsynGet() {
        var httpClient = HttpClient.newBuilder().build();
​
        var request = HttpRequest.newBuilder().timeout(Duration.ofMillis(3000))
                .header("key1", "v1")
                .header("key2", "v2")
                .uri(uri).build();
        try {
//CompletableFuture<String> result = httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body);
​
var result = httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString())
                    .thenApply(HttpResponse::body);
​
            System.out.println(result.get());
​
        } catch (Exception e) {
            e.printStackTrace();
        }
    }






 

第4集 JDK11之标准HttpClient提交Http2请求

简介:讲解JDK11新增Http客户端提交http2请求

private static final String targetUrl = "https://http2.akamai.com/demo";
private static final URI uri = URI.create(targetUrl);
​
private static void testHttp2() {
        var httpClient = HttpClient.newBuilder()
                .connectTimeout(Duration.ofMillis(3000))
                .version(HttpClient.Version.HTTP_2)
                .build();
​
        var request = HttpRequest.newBuilder()
                .timeout(Duration.ofMillis(3000))
                .header("key1", "v1")
                .header("key2", "v2")
                .uri(uri)
                .build();
        try {
            var response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
            System.out.println(response.body());
            System.out.println(response.version());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }






第5集 JDK11之javac和java命令优化

简介:讲解java编译运行命令在jdk11中的改善

 

  • jdk11前运行java程序

    • 编译

      • javac xxx.java

    • 运行

      • java xxx

  • jdk11后运行java程序(本地不会生成class文件)

    • java xxxx.java

public class Main {
​
    public static void main(String[] args) throws Exception {
        String text = "xdclass.net";
        //String类新增repeat(int num) 方法,用于字符串循环输出
        System.out.println(text.repeat(2));
    }
​
}

干货文档

                                                        关注公众号发送:“优快云干货文档”  即可领取

HarmonyOS NEXT 开发者预览版Beta招募应知测试 本次HarmonyOS NEXT 开发者预览版 Beta 招募活动为开发者预览版尝鲜升级,主要供开发者进行应用调测使用,除部分系统应用外,其他所有应用将被清除,因此在进行HarmonyOS NEXT 开发者预览版升级前,需进行数据备份。通过应知测试,并提交了参加HarmonyOS NEXT 开发者预览版招募 Beta 活动的报名信息,就会立刻审核通过并且收到新版本。手机在参加HarmonyOS NEXT 开发者预览版 Beta 招募活动前,需要对应机型升级到招募要求对应的基线版本,并预留内存空间。 阅读详情

相关推荐

别再只会插拔了!深入Linux内核,手把手调试USB热插拔中断(以高通平台为例)

本文深入探讨了Linux内核中USB热插拔中断的调试方法,特别针对高通平台提供了详细的实战指南。从硬件基础到内核机制,再到中断调试工具和常见问题排查,帮助开发者系统性地解决USB设备识别问题。通过监控中断状态、分析处理流程和高级调试技巧,提升USB热插拔的稳定性和性能。

weixin_29161785的博客 428

Java11新特性之HttpClient 使用

JDK变化 从java9的jdk.incubator.httpclient模块迁移到java.net.http模块,包名由jdk.incubator.http改为java.net.http 原来的诸如HttpResponse.BodyHandler.asString()方法变更为HttpResponse.BodyHandlers.ofString(),变化一为BodyHandler改为Body...

cashlifei的博客 3094

学习笔记:物理信息神经网络(PINN)

PINN 的强大在于它打破了传统数值方法的限制,将神经网络的非线性拟合能力与物理方程的严谨性结合起来。它在处理高维、数据稀缺、复杂物理约束的场景下尤其出色。当然,PINN 也有收敛慢、梯度消失等挑战,比如,复杂 PDE 可能导致梯度传播困难,收敛慢(梯度消失)、于具有快速变化特征的系统,如冲击波,标准 PINN 可能精度不足,需要改进策略,比如自适应采样或多尺度特征提取。但随着研究深入,这些问题正在不断被解决。物理或化学方程为什么往往是偏微分方程?什么是物理信息神经网络(PINN)?x_%7Bi%7D。

qq_52635735的博客 1万+

【JDK11】 JEP321: HTTP Client (Standard) 详解 + demo

一·背景描述 从jdk9开始引入HTTP Client 标准化,根据用户的反馈在jdk10开始更新,有了显著的改进,使用方式基本保持不变。通过CompletableFutures提供了非阻塞请求和响应式。流量控制可以在java.util.concurrent.Flow API 提供支持。 在jdk9和jdk时进行时几乎完全重写了实现,实现了完全异步,以前的http1.1实现是阻塞的,RX Flow...

而浮生若梦,为欢几何 3355

5分钟搞定:用Pyannote和Whisper实现带说话人分离的语音转文字(附完整代码)

本文详细介绍了如何快速构建一个集成了说话人分离功能的语音转文字系统。通过结合OpenAI的Whisper模型进行高精度语音识别和Pyannote模型实现说话人分离,并提供了完整的代码实现、环境搭建指南以及核心的对齐与合并逻辑,帮助开发者高效处理会议录音、访谈等多说话人音频,实现自动化转录。

threejs5artist的博客 635

第十一届全国大学生GIS应用技能大赛——广西区域发展布局示意图

我们需要制作一幅广西区域发展布局示意图,最终成图参考“数据”文件夹中的广西区域发展布局示意图.png。地图使用的投影坐标系是 Asia_North_Albers_Equal_Area_Conic,其中地理坐标系是China_Geodetic_Coordinate_System_2000,中央经线东经 105°,标准纬线是北纬 25°和北纬 47°,出图比例尺 1:4,780,000。

@HNUSTer的博客 7794

JDK11新特性 jkd HttpClient

简介 由于项目中用到了JDK11,所以对JDK11学习了一下,这里分享一下我的学习成果。本文主要介绍JDK11新特性 jkd HttpClient的使用。

weixin_40910372的博客 1749

PD虚拟机安装CentOS7后必做的Parallels Tools配置指南(附常见错误解决)

本文详细指导在Mac的Parallels Desktop虚拟机中安装CentOS 7后如何高效配置Parallels Tools,包括环境准备、镜像挂载、依赖问题解决及性能优化。特别针对常见错误如挂载失败、依赖缺失等提供实用解决方案,帮助用户实现主机与虚拟机间的无缝交互和显示优化。

weixin_29288313的博客 299

JDK8,JDK11,JDK17,JDK21的主要更新特性

关于JDK8的主要更新特征:关于JDK11的主要更新特征:关于JDK17的主要更新特征:关于JDK21。

2302_80865055的博客 582

全志A133的AndroidSDK

本小节来学习如何下载全志安卓SDK,SDK的目录,编译和烧录提示:以下是本篇文章正文内容,下面案例可供参考以上就是整个SDK的目录和编译烧录,目的在于让初学者快速了解整个源码的目录和编译出镜像喜欢就订阅吧。

qq_24093081的博客 4054

后台管理系统-7-vue3之引入配置文件baseURL

mock=false,本地模拟。mock=true,线上模拟。baseURL+url=实际请求的URL。get请求param参数,post请求data参数。

qq_20466211的博客 207

JDK 11 和 Java 17 LTS 版本之间的所有变化

如果您要查看 Java 17(Oracle 的最新长期支持 (LTS) 版本)中的功能,您可能会感到失望。该版本中仅包含 14 个 JDK 增强提案 (JEP),而且没有一个特别令人兴奋。事实上,一些 JEP 是彻头彻尾的令人沮丧,例如弃用 Applet API 以进行删除或删除实验性 AOT 和 JIT 编译器。 不再有“大爆炸”的 JDK 版本。过去,会有一个备受期待的功能,例如 Java 模块或 Lambda 表达式,会延迟发布,直到该功能完成。Java 世界不再像那样工作了。现在每六个月发布一次。

weixin_38258315的博客 5493

基于 Qt C++ 的智能工厂数字孪生系统

你想要实现一个基于 Qt C++ 的智能工厂数字孪生系统,核心是 **Qt 3D** 场景搭建 + **实时数据驱动** 设备模型。下面我将为你提供一个完整的解决方案,包含 **核心思路、实现步骤、完整代码示例** 和 **注意事项**。| **渲染层** | 3D 场景搭建、设备模型加载、实时动画渲染、用户交互。| **业务逻辑层** | 数据处理(滤波、转换)、设备状态管理、动画逻辑控制。| **数据层** | 实时采集设备数据(如传感器、PLC、MES 系统),提供数据接口。

寒寒豆豆软件公司的博客 193

小滴课堂-学习笔记:(10)Java高级核心之玩转JDK9常见特性讲解

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 新版JDK13下载和本章课程说明 第2集 java高级核心之JDK9常用Jshell实战 第3集 接口方法进阶之JDK9私有方法 第4集 JDK9新特性之增强try-with-resource 干货文档 第1集 新版JDK13下载和本章课程说明 简介:讲解JDK13版本的下载和后续课程说明 为什么用JDK13 版本太多,直接用最新的进行安装讲解 JDK.

dev666的博客 303

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

小滴课堂-学习笔记:(2)Java高级核心玩转JDK8新特性之接口和日期处理

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 Java新特性玩转JDK8之default关键字 第2集 Java新特性玩转JDK8之新增base64加解密API 第3集 Java新特性玩转JDK8之时间日期处理类上集 第4集 Java新特性玩转JDK8之时间日期处理类下集 第5集 Java新特性玩转JDK8之Optional类 干货文档 第1集 Java新特性玩转JDK8之default关键字 简介:讲解jdk8新特性d..

dev666的博客 412

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

小滴课堂-学习笔记:(13)Java高级核心之大话JDK12和JDK13

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 大话JDK各个版本常见问题讲解 第2集 玩转JDK13新特性之多行文本块 第3集 玩转JDK13新特性之增强switch表达式 干货文档 第1集 大话JDK各个版本常见问题讲解 简介:讲解JDK一些基础知识科普 OpenJDK和OracleJDK版本区别 OpenJDK是JDK的开放源码版本,以GPL协议的形式发布(General Public Licens...

dev666的博客 230

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

小滴课堂-学习笔记:(5) Java高级核心之玩转 JDK8 集合框架

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 Java新特性玩转JDK8之流Stream实战 第2集 Java新特性玩转JDK8之流操作map和filter函数 第3集 Java新特性玩转JDK8之流操作limit和sorted函数 第4集 Java新特性玩转JDK8之流操作allMatch和anyMatch函数 干货文档 第1集 Java新特性玩转JDK8之流Stream实战 简介:讲解jdk8里面的流stream的使用..

dev666的博客 258

小滴课堂-学习笔记:(3)Java高级核心玩转JDK8 Lambda表达式

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 Java新特性玩转 JDK8之 lambda表达式 第2集 Java新特性玩转JDK8之自定义函数式编程实战 干货文档 第1集 Java新特性玩转 JDK8之 lambda表达式 简介:讲解什么是函数式编程和什么是lambda表达式 在JDK8之前,Java是不支持函数式编程的,所谓的函数编程,即可理解是将一个函数(也称为“行为”)作为一个参数进行传递, 面向对象编程是对数据..

dev666的博客 334

小滴课堂-学习笔记:(11) Java高级核心之玩转JDK9的Stream和集合API

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 JDK9之快速创建只读集合 第2集 JDK9之新增Stream API讲解 干货文档 第1集 JDK9之快速创建只读集合 简介:讲解jdk9里面新增的集合容器API,快速创建只读集合 什么是只读集合 集合只能读取,不能增加或者删除里面的元素 JDK9之前创建只读集合 List<String> list = new...

dev666的博客 249

小滴课堂-学习笔记:(8)Java高级核心之玩转 JDK8 Collection和Lambda实战

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 Collection和Lambda电商数据处理实战需求说明 第2集 JDK8新特性处理电商订单数据之答案讲解上集 第3集 JDK8新特性处理电商订单数据之答案讲解下集 干货文档 第1集 Collection和Lambda电商数据处理实战需求说明 简介:综合jdk8新特性,collection和lambda完成数据处理需求整理 需求描述:电商订单数据处理,根据下面的list1和l..

dev666的博客 246

小滴课堂-学习笔记:(7) Java高级核心之玩转 JDK8 收集器和集合统计

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 Java新特性玩转JDK8之collector收集器 第2集 Java新特性玩转JDK8之joining函数 第4集 Java新特性玩转JDK8之收集器 group by分组 第5集 Java新特性玩转JDK8之收集器 group by进阶 第6集 Java新特性玩转JDK8之summarizing集合统计 干货文档 第1集 Java新特性玩转JDK8之collector收集器..

dev666的博客 240

小滴课堂-学习笔记:(6)Java高级核心之玩转 JDK8 集合框架进阶

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 Java新特性玩转JDK8之并行流parallelStream 第2集 Java新特性玩转JDK8之reduce操作 第3集 Java新特性玩转JDK8之集合的foreach 干货文档 第1集 Java新特性玩转JDK8之并行流parallelStream 简介:讲解jdk8里面的并行流parallelStream 为什么会有这个并行流 集合做重复的操作,如果使用..

dev666的博客 242

小滴课堂-学习笔记:(4) Java高级核心玩转JDK8 函数式编程

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 第1集 Java新特性玩转JDK8之函数式编程 Function 简介:讲解jdk8里面的函数式编程 Function接口的使用 Lambda表达式必须先定义接口,创建相关方法之后才可使用,这样做十分不便,其实java8已经内置了许多接口, 例如下面四个功能型接口,所以一般很少会由用户去定义新的函数式接口 Java8的最大特性就是函数式接口,所有标注了@FunctionalInterfa..

dev666的博客 348

小滴课堂-学习笔记:(9) Java高级核心之玩转 JDK8 新的内存空间和异常处理

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 JDK8新特性之新内存空间Matespace 第2集 JDK7新特性之try-with-resources 干货文档 第1集 JDK8新特性之新内存空间Matespace 简介:讲解JDK8里面的新的内存空间MetaSpace JVM 种类有很多,比如 Oralce-Sun Hotspot, Oralce JRockit, IBM J9, Taobao JVM,我们讲的是Hotsp.

dev666的博客 242

小滴课堂-学习笔记:(1)JAVASE课程

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 茫茫人海中为何选择java这门语言 第2集 速成系列java从入门到告诉高手课程介绍 第3集 Java语言编程发展历程和JVM概述 第4集 概念理解面向对象编程和特点 第二章 Java开发环境准备和基础语法第一季 第2集 新版Java环境变量配置 第3集 完成你的第一个Java程序Hello World 第4集 Hello World程序剖析Java语法 第三章 集成开发环..

dev666的博客 2015

小滴课堂-学习笔记:前端-后端项目云服务器生产环境部署核心知识

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 小滴课堂互联网架构之应用部署上线核心知识 第2集 云服务器介绍和阿里云服务器ECS服务器选购 第3集 阿里云服务器远程登录和常用工具 生产环境Linux CentOS云服务器常见相关软件安装 第1集 阿里云Linux服务器Centos7 安装JDK8环境 第2集 生产环境Linux服务器上Nginx介绍和安装 第3集 生产环境Linux服务器上Mysql安装和导入数据 小滴课堂综合.

dev666的博客 2390
上一篇: 小滴课堂-学习笔记:(11) Java高级核心之玩转JDK9的Stream和集合API
下一篇: 小滴课堂-学习笔记:(13)Java高级核心之大话JDK12和JDK13
dev666
博客等级 码龄9年 100粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dev666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值