范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Java18的新特性

  Java语言特性系列
  •   Java5的新特性[1]
  •   Java6的新特性[2]
  •   Java7的新特性[3]
  •   Java8的新特性[4]
  •   Java9的新特性[5]
  •   Java10的新特性[6]
  •   Java11的新特性[7]
  •   Java12的新特性[8]
  •   Java13的新特性[9]
  •   Java14的新特性[10]
  •   Java15的新特性[11]
  •   Java16的新特性[12]
  •   Java17的新特性[13]
  •   Java18的新特性[14]
  •   Java19的新特性[15]  序
  本文主要讲述一下Java18的新特性 版本号java -version openjdk version "18" 2022-03-22 OpenJDK Runtime Environment (build 18+36-2087) OpenJDK 64-Bit Server VM (build 18+36-2087, mixed mode, sharing)
  从version信息可以看出是build 18+36  特性列表JEP 400: UTF-8 by Default[16]
  java18以前Charset.defaultCharset()是根据操作系统、user locale等来决定的,导致不同操作系统的默认charset是不一样,这次统一改为了UTF-8 java18要统一为UTF-8则需要  -Dfile.encoding=UTF-8  来设置 如果还想沿用以前的判断方式则可以通过-Dfile.encoding=COMPAT  来设置JEP 408: Simple Web Server[17]提供了一个类似python的SimpleHTTPServer(  python -m SimpleHTTPServer [port]  )的开箱即用的HTTP文件服务器 可以通过jwebserver -p 9000  启动
  jwebserver -p   9000   Binding to   loopback by default  . For   all   interfaces use   "-b 0.0.0.0"   or   "-b ::"  . Serving /tmp and   subdirectories on   127.0  .0.1   port   9000   URL http://127.0  .0.1  :9000  /
  也可以在代码里定制并启动
  jshell> var   server   = SimpleFileServer.createFileServer(new InetSocketAddress(8080), ..  .> Path.of("/some/path"  ), OutputLevel.VERBOSE); jshell> server.start()JEP 413: Code Snippets in Java API Documentation[18]
  以前要在通过javadoc展示代码可以使用@code如下  {@code     lines of source code }>但是它的缺点就是得用pre包装,导致该片段不能包含html标签,而且缩进不太灵活  >而这次给javaDoc引入了@snippet标签,无需对html标签再进行转义
  /**
  • The following code shows how to use {@code Optional.isPresent}:
  • {@snippet :
  • if (v.isPresent()) {
  • System.out.println("v: " + v.get());
  • }
  • }
  • /
  也可以直接引用源代码,避免javadoc的代码与实际代码脱节
  /** * The following code shows how to   use   {@code   Optional.isPresent}: * {@snippet   file="ShowOptional.java"   region="example"  } */  JEP 416: Reimplement Core Reflection with Method Handles[19]
  通过Method Handles重新实现java.lang.reflect.Method, Constructor及Field来替代字节码生成的Method::invoke, Constructor::newInstance, Field::get, and Field::set的实现 方便支持Project Valhalla,为以后减少扩展成本  JEP 417: Vector API (Third Incubator)[20]
  JDK16引入了  JEP 338: Vector API (Incubator)[21]  提供了jdk.incubator.vector来用于矢量计算 JDK17进行改进并作为第二轮的incubator JEP 414: Vector API (Second Incubator)[22]   JDK18进行改进并作为第三轮的incubator JEP 418: Internet-Address Resolution SPI[23]
  给解析网络地址提供了SPI,即java.net.spi包的InetAddressResolverProvider 方便给project loom做准备(目前InetAddress的API会阻塞在系统调用),也方便定制化及testing  JEP 419: Foreign Function & Memory API (Second Incubator)[24]
  JDK14的  JEP 370: Foreign-Memory Access API (Incubator)[25]  引入了Foreign-Memory Access API作为incubator JDK15的 JEP 383: Foreign-Memory Access API (Second Incubator)[26]  Foreign-Memory Access API作为第二轮incubator JDK16的 JEP 393: Foreign-Memory Access API (Third Incubator)[27]  作为第三轮,它引入了Foreign Linker API JDK17引入 JEP 412: Foreign Function & Memory API (Incubator)[28]  作为第一轮incubator JDK18则作为第二轮的incubator JEP 420: Pattern Matching for switch (Second Preview)[29]instanceof的模式匹配在JDK14作为preview,在JDK15作为第二轮的preview,在JDK16转正
  static   String   formatterPatternSwitch(Object   o) { return   switch   (o) { case   Integer i -> String  .format("int %d"  , i); case   Long l -> String  .format("long %d"  , l); case   Double d -> String  .format("double %f"  , d); case   String   s -> String  .format("String %s"  , s); default   -> o.toString(); }; }
  JDK17引入JEP 406: Pattern Matching for switch (Preview)[30]  JDK18则作为第二轮的previewJEP 421: Deprecate Finalization for Removal[31]
  废弃finalize方法方便后续移除  细项解读
  上面列出的是大方面的特性,除此之外还有一些api的更新及废弃,主要见 JDK 18 Release Notes[32] ,这里举几个例子。添加项
  •
  SerialGC、ParallelGC、ZGC支持String Deduplication
  可使用 -XX:+UseStringDeduplication  开启
  •
  Map from an Element to its JavaFileObject
  新增 Elements.getFileObjectOf(Element)  来映射为JavaFileObject
  •
  Configurable Card Table Card SizeJDK-8272773[33]
  可以使用 -XX:GCCardSizeInBytes  来设置card table大小
  •
  Allow G1 Heap Regions up to 512MBJDK-8275056[34]
  允许G1的heap regions的最大值从之前的32MB到512MB
  •
  JDK Flight Recorder Event for FinalizationJDK-8266936[35]
  新增jdk.FinalizerStatistics
  移除项
  •
  Removal of Google"s GlobalSign Root CertificateJDK-8225083[36]
  移除了google的GlobalSign根证书
  •
  Removal of Empty finalize() Methods in java.desktop ModuleJDK-8273102[37]
  移除java.desktop模块里头的空finalize()方法
  •
  Removal of impl.prefix JDK System Property Usage From InetAddressJDK-8274227[38]
  移除impl.prefix属性,转而使用InetAddressResolver这个spi
  •
  Removal of Support for Pre JDK 1.4 DatagramSocketImpl ImplementationsJDK-8260428[39]
  移除jdk1.4之前的DatagramSocketImpl
  •
  Removal of Legacy PlainSocketImpl and PlainDatagramSocketImpl ImplementationsJDK-8253119[40]
  移除java.net.SocketImpl及java.net.DatagramSocketImpl的老实现PlainSocketImpl、PlainDatagramSocketImpl  jdk.net.usePlainDatagramSocketImpl  属性也一并移除
  废弃项
  完整列表见 deprecated-list[41]
  •
  Deprecated Subject::doAs for RemovalJDK-8267108[42]
  废弃 javax.security.auth.Subject::doAs  为移除做准备
  •
  Deprecated sun.misc.Unsafe Methods That Return OffsetsJDK-8277863[43]
  sun.misc.Unsafe中objectFieldOffset, staticFieldOffset, staticFieldBase方法被废弃
  •
  Terminally Deprecated Thread.stopJDK-8277861[44]
  废弃Thread.stop为后续移除做准备
  •
  Obsoleted Product Options -XX:G1RSetRegionEntries and -XX:G1RSetSparseRegionEntriesJDK-8017163[45]
  废弃 -XX:G1RSetRegionEntries  及-XX:G1RSetSparseRegionEntries
  已知问题
  • Extended Delay Before JDK Executable Installer Starts From Network Drive JDK-8274002[46]
  在 Windows 11 和 Windows Server 2022 上,从映射的网络驱动器启动时,临时安装文件的提取可能会有些缓慢。安装程序仍然可以工作,但可能会有暂时的延迟。
  小结
  Java18主要有如下几个特性
  • JEP 400: UTF-8 by Default[47]
  • JEP 408: Simple Web Server[48]
  • JEP 413: Code Snippets in Java API Documentation[49]
  • JEP 416: Reimplement Core Reflection with Method Handles[50]
  • JEP 417: Vector API (Third Incubator)[51]
  • JEP 418: Internet-Address Resolution SPI[52]
  • JEP 419: Foreign Function & Memory API (Second Incubator)[53]
  • JEP 420: Pattern Matching for switch (Second Preview)[54]
  • JEP 421: Deprecate Finalization for Removal[55]
  doc
  • JDK 18 Features[56]
  • JDK 18 Release Notes[57]
  • Consolidated JDK 18 Release Notes[58]
  • Java SE 18 deprecated-list[59]
  • The Arrival of Java 18[60]
  • JDK 18 G1/Parallel/Serial GC changes[61]

下雪天按监控,详细监控施工路线完美收工,装监控在也不用请师傅今天应一个客户要求去安装三个监控摄像头,客户为了省钱没有选择硬盘录像机,直接要求放到他家电脑上就可以。这是我们需要准备的,三个摄像头,三个电源盒,三个支架,复合线材,一个五口交换机我在京东做数据分析,一位京东数据分析师的工作日常有人说种下一棵树最好的时间是十年前,其次是现在。任何时候,我们都应该抓住机遇,说不定就是改变你现状的一个机会。大家好,又是一年的尾声抓住时间的尾巴,做个总结这一年,入职京东,截至发密切接触者追踪神器蓝牙全球新冠肺炎确诊超200万,不同国家的密切接触者追踪神器各显神通。中国在疫情防控过程中,研发出一项新技术,利用电子设备的蓝牙系统可以有效回溯并确定感染者的密切接触人员,提高了工作效2021世界人工智能大会丨侬好,我们来了大会基本情况历经60余年的迭代演进,人工智能已经从1956年达特茅斯会议上应运而生的概念变为如今触手可及的现实,成为新一轮科技革命和产业变革的重要驱动力量,正在对全球经济发展科技创官宣!宝德成为华为昇腾智造昇腾智城解决方案合作伙伴热烈祝贺,宝德成为华为昇腾智造昇腾智城解决方案合作伙伴!在7月9日举办的2021世界人工智能大会昇腾人工智能高峰论坛上,华为官宣宝德计算机系统股份有限公司成为其昇腾智造和昇腾智城解面向智能世界宝德接连出席两场盛会小满至,夏初始,麦穗初齐,桑叶正肥,真可谓田家少闲月,五月人倍忙!上周恰逢小满节气,宝德接连出席第五届世界智能大会第五届全球人工智能创业者大会,频频释放科技魅力,迎来高光时刻。人工区块链应用?您需要一套宝德IPFS解决方案随着Filecoin主网正式上线,Filecoin的热度一路攀升,以数据存储为核心价值计算能力为表现力的商业新范式正在快速形成。面对区块链发展的广阔前景,IPFS分布式存储搭建了透勒索病毒来势汹汹,安全防护找宝德灾备一体机01勒索病毒来势汹汹,信息安全何去何从?当下,5G大数据云计算人工智能快速发展,并伴随着互联网信息化程度加深,数据资产价值逐渐彰显,网络安全已上升为国家战略,也与大众的切身利益息息2022节假日放假通知公布五一再次连休5天随着国庆节的国庆,2021年的全部节假日已经结束,再有就是2022年元旦了,意味着新一年假期开始了。今天国务院公布了2022年部分节假日的安排情况,春节国庆都是7天,五一劳动节则是又美又飒!中国首位出舱女航天员简历公布一分钟了解神舟十三号载人飞行任务新闻发布会今天下午召开。据报道,此次任务将是空间站阶段的第二次载人飞行,神十三航天员将在太空生活6个月。中国女航天员将首次进驻中国空间站,王亚平将成中国首位出苹果四季度确定性好于安卓,消费电子板块有望迎来估值修复期摘要下半年为传统旺季消费电子供应链厂商业绩确定性高叠加即将进入估值切换时点,消费电子板块有望迎来估值修复期。但需要注意的是,消费电子今日的大涨并不代表其趋势的转向,还需警惕冬季海外
日媒日本对中国进口依赖度高,平板和笔记本电脑占比达98。8来源环球时报日本日经亚洲评论2月6日文章,原题供应链薄弱环节日本依赖中国的手机和笔记本电脑日本政府上周四发布的一份报告警告称,中国商品在日本进口中占据过大的份额,增加了供应链中断的华为Mate40Pro5G终于现货了,麒麟9000鸿蒙系统,你还想要吗?因为华为5G模块遭到封锁,很多5G手机没有办法发布,麒麟芯片也暂时停工了,麒麟9000仍然是华为当前最好的芯片,华为在去年鸿蒙系统发布后,也上市了华为Mate40Pro4G版,售价顺丰都要给客户做销售预测分析了,我们还不努力吗?顺丰都要给客户做销售预测分析了,我们还不努力吗?有资料显示,国内快递巨头顺丰将通过大数据分析和云计算技术,在了解客户需求解决客户痛点成就客户发展的同时,精准的为客户提供仓储管理销售韩国人离不开三星,我们国产手机也一样离不开三星我们都知道韩国人一生离不开三星(因为三星在韩国不仅仅是一家电子产品企业,它的触角触及了韩国人生活的方方面面,包括医疗保险房地产教育食品。等),而我们的国产手机也离不开三星(至少目前5000mAh大电池5nm芯片,16512G下跌1300,国产能应对吗?在去年的国内智能手机市场上,竞争可以说是相当激烈,无论是高端旗舰机市场还是入门级别的千元机手机市场,都百花齐放各绽风采。而随着骁龙8Gen1这款处理器被发布,国内手机市场上也已经开苹果iOS15。4正式版就绪,符合条件的果粉都将在这个时段收到推送除了iPhoneSE3,还有iOS15。4正式版,都将在这个时间发布。根据最新消息,就3月份,不仅苹果会推送2022年春季新品,而且还会推送相对完美的iOS15。4系统,届时符合条深南股份,翠微股份,大金重工,京蓝科技,蓝思科技,三一重工露笑科技第三代半导体总龙头。曲江文旅是旅游概念。蓝思科技大幅调整。深南股份是大数据概念。翠微股份了百货零售概念。亚联发展是大数据概念。京蓝科技是物联网概念。任子行是网络安全概念龙头速学react基本语法(一)为什么学习react前端三大框架vue,react,angular,是现在前端界三驾马车。vue的star数193K,react的star数182K,angular的star数79算法训练石子游戏python算法训练石子游戏问题描述石子游戏的规则如下地上有n堆石子,每次操作可选取两堆石子(石子个数分别为x和y)并将它们合并,操作的得分记为(x1)(y1),对地上的石子堆进行操作直到只剩Android低版本使用Android12启动页面1。在build。gradle文件中,更改compileSdkVersion(需要大于等于31),并在依赖项中添加SplashScreencompat库。build。gradlea冬奥期间虚拟数字人屡登场!商业化鸿沟仍待填补科创板日报(记者黄心怡),冬奥会举办期间,多款虚拟数字人亮相各大平台。中央广播电视总台新增了央视新闻AI手语虚拟主播,由百度智能云提供支持,可为听障用户提供24小时的手语服务,令其