当前位置: 首页 > wzjs >正文

网络营销企业网站推广网站首页的psd怎么做

网络营销企业网站推广,网站首页的psd怎么做,免费的网页设计成品下载,贝贝网网站开发背景Java 11 核心特性解析 Java 11于2018年9月发布,是继Java 8之后的第二个长期支持(LTS)版本,提供了多项重要的新特性和改进。 HTTP客户端标准化 特性概述 Java 11将Java 9中引入的HTTP客户端API从孵化模块升级为标准模块,提供了现代化的HTT…

Java 11 核心特性解析

Java 11于2018年9月发布,是继Java 8之后的第二个长期支持(LTS)版本,提供了多项重要的新特性和改进。

HTTP客户端标准化

特性概述

Java 11将Java 9中引入的HTTP客户端API从孵化模块升级为标准模块,提供了现代化的HTTP客户端,支持HTTP/1.1和HTTP/2协议。

技术细节

新的HTTP客户端API位于java.net.http包中,主要包含以下类:

  • HttpClient:客户端主类,用于发送请求和接收响应
  • HttpRequest:表示HTTP请求
  • HttpResponse:表示HTTP响应
  • WebSocket:支持WebSocket通信
// 创建HTTP客户端
HttpClient client = HttpClient.newBuilder().version(HttpClient.Version.HTTP_2).connectTimeout(Duration.ofSeconds(10)).followRedirects(HttpClient.Redirect.NORMAL).build();// 构建请求
HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://api.example.com/data")).timeout(Duration.ofSeconds(30)).header("Content-Type", "application/json").GET().build();// 同步发送请求
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("状态码: " + response.statusCode());
System.out.println("响应体: " + response.body());// 异步发送请求
client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body).thenAccept(System.out::println).join(); // 等待完成// POST请求示例
HttpRequest postRequest = HttpRequest.newBuilder().uri(URI.create("https://api.example.com/users")).timeout(Duration.ofSeconds(30)).header("Content-Type", "application/json").POST(HttpRequest.BodyPublishers.ofString("{\"name\":\"张三\",\"age\":30}")).build();
应用场景
  1. RESTful API调用
// 调用RESTful API
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://api.example.com/products")).header("Accept", "application/json").build();client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body).thenApply(body -> {// 解析JSON响应return parseJson(body);}).thenAccept(products -> {// 处理产品数据processProducts(products);});
  1. 并行API请求
// 并行发送多个请求
List<URI> uris = List.of(URI.create("https://api.example.com/users"),URI.create("https://api.example.com/products"),URI.create("https://api.example.com/orders")
);HttpClient client = HttpClient.newHttpClient();List<CompletableFuture<String>> futures = uris.stream().map(uri -> HttpRequest.newBuilder(uri).build()).map(request -> client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body)).collect(Collectors.toList());CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).thenAccept(v -> {// 所有请求完成后处理结果List<String> results = futures.stream().map(CompletableFuture::join).collect(Collectors.toList());processResults(results);});
  1. 文件上传
// 上传文件
Path path = Path.of("large-file.zip");
HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://api.example.com/upload")).header("Content-Type", "application/octet-stream").POST(HttpRequest.BodyPublishers.ofFile(path)).build();HttpClient client = HttpClient.newHttpClient();
client.send(request, HttpResponse.BodyHandlers.ofString());

String新方法

特性概述

Java 11为String类添加了多个实用的新方法,简化了字符串处理。

技术细节

新增的String方法包括:

  • isBlank():判断字符串是否为空或仅包含空白字符
  • lines():将字符串分割为行,返回Stream
  • strip()stripLeading()stripTrailing():去除首尾空白字符(支持Unicode空白)
  • repeat(int):重复字符串指定次数
// isBlank() - 检查字符串是否为空或仅包含空白字符
String emptyString = "";
String blankString = "   \t\n";
System.out.println(emptyString.isBlank());  // true
System.out.println(blankString.isBlank());  // true
System.out.println("Hello".isBlank());      // false// lines() - 将字符串分割为行
String multiline = "Line 1\nLine 2\nLine 3";
multiline.lines().forEach(System.out::println);// strip() - 去除首尾空白字符
String text = "  Hello World!  ";
System.out.println("'" + text.strip() + "'");       // 'Hello World!'
System.out.println("'" + text.stripLeading() + "'"); // 'Hello World!  '
System.out.println("'" + text.stripTrailing() + "'"); // '  Hello World!'// repeat() - 重复字符串
String star = "*";
System.out.println(star.repeat(5));  // *****
System.out.println("abc".repeat(3)); // abcabcabc
应用场景
  1. 表单输入验证
// 验证用户输入不为空
public boolean isValidInput(String input) {return input != null && !input.isBlank();
}
  1. 文本处理
// 处理多行文本
String log = getLogContent();
log.lines().filter(line -> line.contains("ERROR")).map(line -> line.strip()).forEach(errorLine -> processError(errorLine));
  1. 格式化输出
// 创建格式化的表格
String header = "| Name | Age | City |";
String separator = "|" + "-".repeat(6) + "|" + "-".repeat(5) + "|" + "-".repeat(6) + "|";
System.out.println(header);
System.out.println(separator);

Lambda参数的局部变量语法

特性概述

Java 11允许在Lambda表达式的参数中使用var关键字,与Java 10引入的局部变量类型推断相呼应,同时可以添加注解。

技术细节

在Lambda表达式中使用var的语法:

// 不使用var
(String s1, String s2) -> s1 + s2// 使用var
(var s1, var s2) -> s1 + s2// 使用var并添加注解
(@NotNull var s1, @Nullable var s2) -> s1 + s2

需要注意的是,如果使用var,必须为所有参数都使用var,不能混用。

应用场景
  1. 添加参数注解
// 添加参数校验注解
list.stream().filter((@NotNull var item) -> item.length() > 5).collect(Collectors.toList());
  1. 提高代码可读性
// 使用var可以让注解更加突出
Function<String, String> func = (@Deprecated var x) -> x.toLowerCase();

ZGC: 可扩展低延迟垃圾收集器 (实验性)

特性概述

Java 11引入了ZGC (Z Garbage Collector),这是一个可扩展的低延迟垃圾收集器,旨在将GC停顿时间控制在10毫秒以内,无论堆大小如何。

技术细节

ZGC的主要特点:

  • 停顿时间不超过10毫秒
  • 停顿时间不会随着堆大小或活动对象数量增加而增加
  • 可处理从几百MB到TB级别的堆
  • 支持NUMA感知的内存分配
  • 使用标记-整理算法,不会产生内存碎片
  • 并发执行所有昂贵的工作
# 启用ZGC
java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xmx16g MyApplication
应用场景
  1. 低延迟交易系统
# 为金融交易系统配置ZGC
java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xms8g -Xmx8g -XX:+AlwaysPreTouch -XX:+DisableExplicitGC TradingSystem
  1. 大内存服务器应用
# 为大内存应用配置ZGC
java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xms32g -Xmx32g -XX:ZCollectionInterval=120 BigDataApplication

Epsilon: 无操作垃圾收集器 (实验性)

特性概述

Java 11引入了Epsilon GC,这是一个"无操作"垃圾收集器,它分配内存但不回收内存。当堆内存耗尽时,JVM会退出。

技术细节

Epsilon GC适用于短生命周期的应用或测试场景:

  • 不执行任何垃圾回收
  • 只处理内存分配
  • 当堆内存耗尽时,JVM会抛出OutOfMemoryError并退出
# 启用Epsilon GC
java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xms2g -Xmx2g MyApplication
应用场景
  1. 性能测试和基准测试
# 测量GC对性能的影响
java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xmx1g BenchmarkApplication
  1. 短生命周期应用
# 运行短生命周期的命令行工具
java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xmx100m CommandLineTool

飞行记录器 (Flight Recorder)

特性概述

Java 11开源了之前商业版JDK中的飞行记录器(JFR)功能,它是一个低开销的数据收集框架,用于分析Java应用的运行情况。

技术细节

JFR可以收集各种运行时信息:

  • JVM信息:类加载、编译、GC等
  • 操作系统信息:CPU、内存、网络等
  • 应用信息:线程、锁等
  • 自定义事件
# 启动应用并开启JFR记录
java -XX:StartFlightRecording=duration=120s,filename=recording.jfr MyApplication# 使用jcmd动态开启JFR
jcmd <pid> JFR.start duration=120s filename=recording.jfr# 使用Java代码开启JFR
Configuration config = Configuration.getConfiguration("default");
Recording recording = new Recording(config);
recording.start();
// ... 应用运行
recording.stop();
recording.dump(Path.of("recording.jfr"));
应用场景
  1. 性能问题诊断
# 诊断生产环境性能问题
java -XX:StartFlightRecording=name=leak,settings=profile,disk=true,dumponexit=true,duration=0,filename=leak.jfr ProductionApp
  1. 内存泄漏分析
// 分析内存泄漏
java -XX:StartFlightRecording=name=leak,settings=profile,disk=true,dumponexit=true,duration=0,filename=leak.jfr MemoryLeakApp

其他重要特性

标准化嵌套访问控制

Java 11标准化了嵌套类访问私有成员的规则,使得编译器和JVM处理嵌套类的方式更加一致。

动态类文件常量

Java 11增强了类文件格式,支持新的常量池形式CONSTANT_Dynamic,简化了创建某些类型的可变类的实现。

低开销堆分析

Java 11引入了一种新的低开销堆分析方法,可以在不暂停应用的情况下获取Java对象的堆信息。

// 使用JVMTI获取堆信息
// 需要通过JVM参数启用
// -XX:+UnlockCommercialFeatures -XX:+FlightRecorder
移除Java EE和CORBA模块

Java 11继续移除了更多的Java EE和CORBA模块:

  • java.xml.ws (JAX-WS)
  • java.xml.bind (JAXB)
  • java.activation (JAF)
  • java.xml.ws.annotation (Common Annotations)
  • java.corba (CORBA)
  • java.transaction (JTA)
  • java.se.ee (Aggregator module)
废弃Nashorn JavaScript引擎

Java 11废弃了Nashorn JavaScript引擎,计划在未来的版本中移除。

支持TLS 1.3

Java 11支持传输层安全协议(TLS) 1.3版本,提供更好的安全性和性能。

// 启用TLS 1.3
SSLContext context = SSLContext.getInstance("TLSv1.3");
context.init(null, null, null);SSLServerSocketFactory ssf = context.getServerSocketFactory();
SSLServerSocket serverSocket = (SSLServerSocket) ssf.createServerSocket(9999);

文章转载自:

http://jYZCRLZA.krkwp.cn
http://X79zMieW.krkwp.cn
http://cjGqRejs.krkwp.cn
http://c80PzHYB.krkwp.cn
http://HOmEU4a2.krkwp.cn
http://VJjYTUUU.krkwp.cn
http://q6j6WkWh.krkwp.cn
http://0f5MyNxx.krkwp.cn
http://3yMiOP4u.krkwp.cn
http://irYMXLfc.krkwp.cn
http://wwpKS81k.krkwp.cn
http://5Mqaw8rs.krkwp.cn
http://ldjqGLXk.krkwp.cn
http://b3JfaAky.krkwp.cn
http://JuL33oCt.krkwp.cn
http://ptBUqgPl.krkwp.cn
http://b0BBhLxw.krkwp.cn
http://AQ3yYBEm.krkwp.cn
http://FLghe5Cd.krkwp.cn
http://UCIE6MBZ.krkwp.cn
http://BqONF3EE.krkwp.cn
http://XtxAvUD2.krkwp.cn
http://egOJr8La.krkwp.cn
http://m7kc1sMr.krkwp.cn
http://HloAkm0Y.krkwp.cn
http://PzccezZw.krkwp.cn
http://YpYtN1V9.krkwp.cn
http://xwsShMqS.krkwp.cn
http://FGSzHyEY.krkwp.cn
http://TZiIe9aM.krkwp.cn
http://www.dtcms.com/wzjs/664484.html

相关文章:

  • 网站备案成功后wordpress如何迁移
  • 企业官方网站地址怎么填网站改版策划书
  • 建设银行网站上交医保装潢设计主要学什么
  • 南昌企业制作网站和硕网站建设
  • 网站开发绩效指标软件工程学校排名
  • 山东天成建设工程有限公司网站建设资格执业注册中心网站
  • 充值中心网站怎么做自己做营销网站
  • 做网站待遇企业网站怎么做毕业设计
  • 网站关键词优化价格免费模板网页下载
  • 建设网站优点张家界建设网站的公司
  • 淘宝客api网站架设教程建网站自学
  • 外贸开发网站开发冷水滩做微网站
  • 上海网站制作多少钱公司制作网站跟企业文化的关系
  • 企业网站系统的设计与开发湖南注册公司
  • 南宁网站建设哪家公司实seo网站诊断书
  • 网站是别人做的我这就没有根目录品牌建设不足的原因
  • 谁有人和兽做的网站上海市工程建设协会网站
  • 广州定制网站公司怎么做网站促收录
  • 前端做网站之后的感想总结做公司网站 国外系统
  • 淘宝网站怎么做会话保持的专门做团购的网站有哪些
  • 有没有专门做渔具的网站wordpress 亲子主题
  • 顺义做网站同学南宁网站备案
  • 网站建设后期维护小魔仙微商推广哪家好
  • 城乡建设部网站首页上海wordpress留言功能
  • 旅游景点网站设计论文数学教学网站开发
  • 如何拷贝服务器里面网站做备份腾讯科技微信小程序
  • 有专门做背景音乐的网站吗深圳专业网站建设要求
  • 百度搜寻网站缩略图如何添加网站后台左侧导航折叠效果打不开
  • 韶关市网站建设制作html5网站
  • 网站开发涉及到哪些知识产权如何去建设一个企业网站