Java11.0标准之重要特性及用法实例(二十一)

news2024/9/21 14:42:13

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

新书发布:《Android系统多媒体进阶实战》🚀
优质专栏: Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏: 多媒体系统工程师系列原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.Java11.0标准介绍
    • 🌻3.代码实例
      • 🐓3.1 HttpClient API
      • 🐓3.2 运行时 Java 运行(java)
      • 🐓3.3 字符串处理的增强
      • 🐓3.4 文件读写的简化

🌻1.前言

本篇目的:Java11.0标准之重要特性及用法实例

🌻2.Java11.0标准介绍

  • Java 11.0,作为Java编程语言的最新长期支持版本(LTS),于2018年9月发布,标志着Java平台的一个重要发展阶段。Java 11.0不仅继承了Java 9.0和Java 10.0中的多项创新,还引入了一系列新特性和改进,旨在提高开发效率、增强性能和简化Java应用程序的维护。以下是Java 11.0标准的主要亮点:
  1. 零长度的数组索引
    Java 11.0允许创建和访问长度为零的数组,这有助于避免空指针异常,并简化了某些场景下的代码。
  2. Lambda表达式改进
    Java 11.0增强了Lambda表达式,允许它们访问私有方法,这使得Lambda表达式更加灵活和强大。
  3. 字符串增强
    新版本引入了几个新的字符串处理方法,如isBlank()、strip()、stripLeading()和stripTrailing(),简化了字符串操作。
  4. 标准化HTTP客户端
    Java 11.0将新的HTTP客户端API标准化,该API最初在Java 9中作为孵化模块引入,并在Java 10中得到改进。
  5. Java Flight Recorder(JFR)
    Java Flight Recorder是一种分析工具,现在它被集成到Java 11.0的标准版本中,无需额外安装,便于诊断生产环境中的性能问题。
  6. ZGC:可扩展的低延迟垃圾回收器
    Java 11.0引入了ZGC(Z Garbage Collector),这是一个实验性的垃圾回收器,旨在减少停顿时间,适用于多核心机器上的大堆内存。
  7. Shenandoah GC
    Shenandoah GC是另一个实验性的垃圾回收器,旨在实现低停顿时间的垃圾回收,特别适用于需要低延迟的大规模应用程序。
  8. Lambda局部变量语法
    Java 11.0允许在Lambda表达式中使用var关键字声明局部变量,进一步简化了Lambda表达式的编写。
  9. Nest-Based访问控制
    Java 11.0引入了基于嵌套的访问控制,这是一种更细粒度的访问控制机制,有助于提高代码的安全性和模块化。
  10. 动态类文件常量
    Java 11.0增加了对动态类文件常量的支持,允许在运行时动态更新常量池,提高了Java应用程序的灵活性。
  11. Unicode 11支持
  • Java 11.0更新了对Unicode的支持,升级到了Unicode 11.0版本,增加了新的字符、符号和脚本。
  • Java 11.0标准为Java开发者带来了许多重要的特性和改进,不仅提高了开发效率和性能,还简化了代码的编写和维护。作为长期支持版本,Java 11.0将获得长达八年的更新和维护,使其成为企业和生产环境中理想的Java版本选择。Java 11.0的发布标志着Java平台继续向前发展,为未来的创新奠定了坚实的基础。

🌻3.代码实例

🐓3.1 HttpClient API

  • Java 11 标准化了 HttpClient API,这使得发送 HTTP 请求变得更加简单和直观。
// HttpClientExample.java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(new URI("https://www.example.com"))
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}


🐓3.2 运行时 Java 运行(java)

  • 在 Java 11 中,可以直接运行 Java 文件,而无需显式编译。这使得运行小的 Java 脚本变得更加方便。
// RunExample.java
public class RunExample {
    public static void main(String[] args) {
        System.out.println("Running Java file directly!");
    }
}

🐓3.3 字符串处理的增强

  • Java 11 对字符串处理进行了许多增强,包括 strip(), repeat(), lines(), 和 isBlank() 方法。
// StringMethodsExample.java
public class StringMethodsExample {
    public static void main(String[] args) {
        String multilineString = "  Hello\n  Java 11\n  ";

        System.out.println("strip: '" + multilineString.strip() + "'");
        System.out.println("repeat: '" + "Java11 ".repeat(3) + "'");
        System.out.println("lines:");
        multilineString.lines().forEach(System.out::println);
        System.out.println("isBlank: " + "   ".isBlank());
    }
}

🐓3.4 文件读写的简化

// FileReadWriteExample.java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileReadWriteExample {
    public static void main(String[] args) throws IOException {
        Path filePath = Paths.get("example.txt");
        
        // 写入文件
        Files.writeString(filePath, "Hello, Java 11 File API!");

        // 读取文件
        String content = Files.readString(filePath);
        System.out.println(content);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1977354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(四)springboot2.7.6集成activit5.23.0之更换数据源

前面学习时&#xff0c;使用的内存数据库H2&#xff0c;实际使用时&#xff0c;一般会替换我们指定的数据库&#xff0c;这个时候要怎么配置呢&#xff1f; 1.查看activiti-spring-boot-starter-basic的spring.factories配置。 2.查看DataSourceProcessEngineAutoConfigurati…

诗意、甜美、可爱的水果:berry和cherry

我曾经在单词记忆的课上讲过&#xff0c;sweat(汗)和sweet(甜)的记忆之法&#xff0c;是甜这个单词sweet可以拟作甜丝丝来记忆&#xff0c;它是双写的-ee-结构&#xff0c;这样就能很好地与sweat相区别&#xff0c;同样desert(沙漠)和dessert(甜点)也是如此&#xff0c;和甜有关…

策略模式的一次应用

项目的需求是将一组图像按照相似度分类。 采用了模板匹配计算相似度的实现方式。 #include <opencv2/core.hpp> #include <openev2/core/utility.hpp> #include <opencv2/highqui.hpp> #include <openav2/imgproc.hpp> cv::Mat image matched; double …

基于微信小程序的游戏王交流平台设计与实现-计算机毕设 附源码 06533

基于微信小程序的游戏王交流平台设计与实现 摘要 本项目旨在设计并实现一款基于微信小程序的游戏王交流平台&#xff0c;旨在为广大游戏王爱好者提供一个交流互动的平台。通过该平台&#xff0c;用户可以分享游戏交流、分享卡片信息、参与线上比赛等活动&#xff0c;促进玩家之…

Python数据库连接全解析:5大方案实战对比

在本文中&#xff0c;我们将通过实际示例&#xff0c;深入探讨Python中5种主流的数据库连接方案。这些例子将帮助您更好地理解每种方法的特点和适用场景。 目录 不同方案说明1. DB-API&#xff1a;以sqlite3为例2. SQLAlchemy&#xff1a;ORM示例3. psycopg2&#xff1a;Postgr…

随身助手271个可用api接口网站php源码(随身助手API)

源码简介&#xff1a; 随身助手API&#xff0c;本次更新了271个可用接口&#xff0c;现在开源给大家使用&#xff0c;无后门无加密&#xff0c;放心使用。 {“标题”:”看图猜成语接口”,”小标题”:”随身助手API”,”地址”:”tianyi/LookIdiom.php”,”状态”:”正常”} {…

循环结构(三)——do-while语句

目录 &#x1f341;引言 &#x1f341;一、语句格式 &#x1f680;格式1 &#x1f680;格式2 &#x1f341;二、语句执行过程 &#x1f341;三、实例 &#x1f680;【例1】 &#x1f680;【例2】 &#x1f680;【例3】 &#x1f341;总结 &#x1f341;备注 &am…

升级学校管理方式!智慧校园学工系统期末评语功能详解

智慧校园学工系统的“期末评语”功能模块主要用于教师对学生一学期的学习表现进行全面评价&#xff0c;并给出个性化的反馈建议。这一模块旨在促进师生之间的沟通&#xff0c;帮助学生了解自己的学习情况和发展方向。 教师可以根据学生的学习态度、成绩变化、课堂参与度等方面…

TCP Analysis Flags 之 TCP Window Full

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…

详解C/C++输入输出

前言 C/C输入输出很多&#xff0c;在不同的情况会用不同的输入输出&#xff0c;有的题目在输入时可能换一种输入输出就能不会TLE&#xff0c;有的输入可能要循环输入&#xff0c;但是可以换一种输入直接就能把所有数据输入进去。C/C有哪些常用的输入输出&#xff0c;在什么时候…

总线学习1--I2C

很久以前就听说总线这个词了&#xff0c;一直不懂&#xff0c;所以觉得很牛叉。。。这次有机会学习&#xff0c;就干脆一起看看吧。 1 环境介绍 说实话&#xff0c;计算机的学习最好还是有个环境&#xff0c;裸学真的要难一些。硬件学习其实难就难在搭环境&#xff0c;之前很多…

生物计算与纳米技术:交汇前沿的科学领域

在当今科技迅猛发展的时代&#xff0c;生物计算和纳米技术作为前沿科技领域的两个重要方向&#xff0c;正在逐渐融合并带来深远的影响。生物计算涉及使用生物系统进行计算和数据存储&#xff0c;而纳米技术则关注制造极小尺度的电子器件和材料科学。本文将深入探讨这两个领域的…

2.2 (1) 处理机调度

文章目录 处理机调度概念处理机调度层次高级调度&#xff08;作业调度&#xff09;中级调度&#xff08;内存调度&#xff09;低级调度&#xff08;进程调度/处理机调度&#xff09;三层调度的联系对比 进程调度的时机需要进行进程调度与切换的情况不能进行进程调度与切换的情况…

【Linux学习】文件系统 - 第一篇

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; &#x1f4d5;文章目录 &#x1f4da;基础知识铺垫&#x1f351;重新使用C语言文件接口---对比重定向&#x1f388;fopen函数&#x1f30f…

[云原生]三、Kubernetes(1.18)

主要内容: 1、kubernetes 简介 2、kubernetes 集群搭建  方式搭建  二进制方式搭建 3、 kubeadm kubernetes 核心技术  YAML 文件详解  kubectl 命令工具  Pod  Label  Controller 控制器 …

node.js使用NodeMachineID 生成唯一UUID和注意事项

node-machine-id用于获取或生成唯一的机器ID 如何使用 const { machineId, machineIdSync } require(node-machine-id) JSON.stringify(machineIdSync({original: true})) ;方法&#xff1a; machineIdSync 此函数同步获取操作系统本机UUID/GUID&#xff0c;默认情况下进行哈…

深入理解 ReLU 激活函数及其在深度学习中的应用【激活函数、Sigmoid、Tanh】

ReLU&#xff08;Rectified Linear Unit&#xff09;激活函数 ReLU&#xff08;Rectified Linear Unit&#xff09;激活函数是一种广泛应用于神经网络中的非线性激活函数。其公式如下&#xff1a; ReLU ( x ) max ⁡ ( 0 , x ) \text{ReLU}(x) \max(0, x) ReLU(x)max(0,x) 在…

嵌入式Linux系统中pinictrl框架基本实现

1. 回顾Pinctrl的三大作用 记住pinctrl的三大作用,有助于理解所涉及的数据结构: * 引脚枚举与命名(Enumerating and naming) * 单个引脚 * 各组引脚 * 引脚复用(Multiplexing):比如用作GPIO、I2C或其他功能 * 引脚配置(Configuration):比如上拉、下拉、open drain、驱…

Java中的五种线程池类型

Java中的五种线程池类型 1. CachedThreadPool &#xff08;有缓冲的线程池&#xff09;2. FixedThreadPool &#xff08;固定大小的线程池&#xff09;3. ScheduledThreadPool&#xff08;计划线程池&#xff09;4. SingleThreadExecutor &#xff08;单线程线程池&#xff09…

CTFHUB-SSRF-DNS重绑定 Bypass

开启题目&#xff0c;页面空白&#xff0c;访问附件 附件是一个知乎的文章&#xff0c;翻到下面点击文中这个链接 跳转之后&#xff0c;进行设置 把得到的链接拼接到题目的后面进行访问&#xff0c;然后得到了本题的 flag