JAVA进化史: JDK11特性及说明

JDK 11(Java Development Kit 11)是Java平台的一个版本,于2018年9月发布。这个版本引入了一些新特性和改进,以下是其中一些主要特性。

HTTP Client(标准化)

JDK 11引入了一个新的HTTP客户端,用于替代过时的HttpURLConnection。新的HTTP Client提供了更现代、灵活的API,支持异步和同步操作。

// 使用新的HTTP Client发送GET请求
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://www.example.com")).build();HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

 局部变量语法增强(var)

 JDK 11进一步增强了局部变量类型推断,允许在Lambda表达式中使用var

// 使用var进行局部变量类型推断
List<String> names = List.of("Alice", "Bob", "Charlie");
names.forEach((var name) -> System.out.println("Hello, " + name));

JEP 318: 引入了Epsilon垃圾收集器

JDK 11引入了Epsilon垃圾收集器,这是一种不做实际垃圾回收的垃圾收集器,主要用于性能测试和短暂任务。

JEP 330: 直接启动源码文件

JDK 11允许直接运行单文件源码程序,无需先进行编译。

// 直接运行单文件源码程序
// HelloWorld.java
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}
}
// 在命令行运行
java HelloWorld.java

JEP 329: 支持ChaCha20和Poly1305密码算法

JDK 11添加了ChaCha20和Poly1305加密算法的支持,这些算法被广泛用于加密通信。

// 使用ChaCha20和Poly1305加密算法
Cipher cipher = Cipher.getInstance("ChaCha20-Poly1305");

JEP 333: 一种可扩展的低延迟垃圾回收器ZGC(实验)

JDK 11引入了Z Garbage Collector(ZGC),这是一种实验性的、面向低延迟的垃圾收集器,适用于大内存堆的场景。

java -XX:+UseZGC -Xmx4g MyApp

JEP 335: 弃用Nashorn JavaScript引擎

JDK 11弃用了Nashorn JavaScript引擎,推荐使用更现代的JavaScript引擎,如GraalVM。

// 使用GraalVM JavaScript引擎
Context context = Context.create();
Value result = context.eval("js", "print('Hello, Nashorn!')");

其他改进和优化

JDK 11还包含一些其他的改进和优化,例如性能改进、新的命令行选项以及对标准库的更新。 

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

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

相关文章

【数据库设计和SQL基础语法】--安全性和备份--数据库安全性的重要性

安全性在信息时代的关键性是不可忽视的&#xff0c;随着科技的迅猛发展和数字化转型的推进&#xff0c;信息已成为现代社会最宝贵的资产之一。在这个背景下&#xff0c;数据库作为信息存储和管理的核心枢纽&#xff0c;其安全性显得尤为重要。以下是安全性在信息时代的关键性的…

Python 实现 PDF 到 Word 文档的高效转换(DOC、DOCX)

PDF&#xff08;Portable Document Format&#xff09;已成为一种广泛使用的电子文档格式。PDF的主要优势是跨平台&#xff0c;可以在不同设备上呈现一致的外观。然而&#xff0c;当我们需要对文件内容进行编辑或修改&#xff0c;直接编辑PDF文件会非常困难&#xff0c;而且效果…

Vue3.0飘红报警问题

问题一: 问题描述:组件引用找不到模块“”或其对应的类型声明 imort Home from ".../view/Home.vue" 解决方法:安装插件TypeScript Vue Plugin(Volar) 问题二: 问题:vue内置api引用:找不到模块"vue-route".你的意思是将"moduleResolution"选项置…

SimpleCG小游戏开发系列(2)--贪吃蛇

一、前言 在之前的C语言小游戏开发系列我们已经介绍了扫雷游戏的开发&#xff0c;本篇我们继续此系列第二篇&#xff0c;同样是比较简单但好玩的一个游戏--贪吃蛇。因为有了之前的游戏框架&#xff0c;我们只需要直接搬来原来的框架即可&#xff0c;可以省去不少活。 先看看游…

java数据结构与算法刷题-----LeetCode 680. 验证回文串 II

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 思路&#xff1a;双指针 详情见代码注释 class Solution {//贪心双指针&a…

什么是工厂方法模式,工厂方法模式解决了什么问题?

工厂方法模式是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;但将实际的实例化过程延迟到子类中。这样&#xff0c;客户端代码在不同的子类中实例化具体对象&#xff0c;而不是直接实例化具体类。工厂方法模式允许一个类的实例化延迟到其子类&…

Springboot实现登录注册

功能&#xff1a;1、实现用户的登录 2、实现用户的注册以及重名的判断 LoginControl&#xff1a; package com.example.demo.controls;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; imp…

CEC2017(Python):五种算法(HHO、RFO、OOA、PSO、GWO)求解CEC2017

一、5种算法简介 1、哈里斯鹰优化算法HHO 2、红狐优化算法RFO 3、鱼鹰优化算法OOA 4、粒子群优化算法PSO 5、灰狼优化算法GWO 二、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem d…

【PythonRS】基于矢量范围批量下载遥感瓦片高清数据(天地图、高德、谷歌等)

这个是之前写的代码了&#xff0c;正好今天有空所以就和大家分享一下。我们在处理项目时&#xff0c;有时候需要高清底图作为辅助数据源去对比数据&#xff0c;所以可能会需要卫星数据。所以今天就和大家分享一下如何使用Python基于矢量范围批量下载高清遥感瓦片数据。 1 读取矢…

resnet18

ResNet18的基本含义是&#xff0c;网络的基本架构是ResNet&#xff0c;网络的深度是18层。但是这里的网络深度指的是网络的权重层&#xff0c;也就是包括池化&#xff0c;激活&#xff0c;线性层。而不包括批量化归一层&#xff0c;池化层。 transforms.RandomCrop(32, pa…

[Java][IOStream][BufferedReader]的readLine/writeLine方法-游戏储存信息必备

在游戏的信息存储里面&#xff0c;我们经常需要保存一些玩家的属性 比如&#xff1a;生命值/魔法值/攻击力 假设我们将数据储存在一个txt文档中&#xff0c;那么使用这个方法就可以实现逐行的读取 import java.io.BufferedReader; import java.io.FileReader; import java.i…

代码随想录算法训练营第52天|● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

300. 最长递增子序列 已解答 中等 相关标签 相关企业 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,…

RabbitMQ 核心概念(交换机、队列、路由键),队列类型等介绍

RabbitMQ 核心概念(交换机、队列、路由键)&#xff0c;队列类型等介绍 RabbitMQ 是一个消息队列系统&#xff0c;它的核心概念包括交换机&#xff08;Exchange&#xff09;、队列&#xff08;Queue&#xff09;和路由键&#xff08;Routing Key&#xff09;&#xff0c;它们一起…

Apache Flink连载(二十):Flink On Yarn运行 - Yarn Per-Job模式(弃用)

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. 任务提交命令 2. 任务…

OCP NVME SSD规范解读-4.NVMe IO命令-2

NVMe-IO-3&#xff1a; 由于设备具有掉电保护功能&#xff08;如Power Loss Protection&#xff0c;PLP&#xff09;&#xff0c;因此在以下情况下&#xff0c;性能不应降低&#xff1a; FUA&#xff08;Force Unit Access&#xff09;&#xff1a;是计算机存储设备中的一种命…

Grafana告警发送至飞书配置指定at某人或所有人

1.问题描述 通过webhook向飞书机器人发送消息&#xff0c;根据飞书机器人官方文档&#xff0c;始终无法指定某个人或者所有人通知&#xff0c;后来发现是文档参数有问题。 文档地址&#xff1a;https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot 官方文档给…

谷达冠楠:抖店怎么运营提升销量

随着电商行业的快速发展&#xff0c;抖店作为抖音平台上的一种新型电商模式&#xff0c;越来越受到商家和消费者的青睐。然而&#xff0c;如何在众多的抖店中脱颖而出&#xff0c;提升销量呢?本文将从以下几个方面为大家分享一些运营技巧。 选品策略&#xff1a;选对产品是提升…

day3双指针

输入一字符串&#xff0c;然后将该字符串中的单词分割开来 #include <iostream> #include <string.h> using namespace std; int main() {char str[1000];gets(str);int nstrlen(str);for(int i0;i<n;i){int ji;while(str[j]! &&j<n) j;for(int ki;k…

Gooxi受邀出席2023松山湖软件和信息服务业高质量发展大会

为推动粤港澳大湾区的软件和先进制造产业的融合发展&#xff0c;“2023松山湖软件和信息服务业高质量发展大会”于今日在松山湖畔隆重举办&#xff0c;会议以“推动软件和制造业深度融合发展&#xff0c;打造软件和信息服务业集聚高地”为主题&#xff0c;聚焦工业软件应用、智…

JavaScript(简写js)常用事件举例演示

目录 1.窗口事件onblur :失去焦点onfocus:获得焦点onload:窗口加载事件onresize:窗口大小缩放事件 二、表单事件oninput &#xff1a;当文本框内容改变时 &#xff0c;立即将改变内容 输出在控制台onchange&#xff1a; 内容改变事件onclick&#xff1a;鼠标单击时触发此事件 三…