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

真的要开始用JDK17了

  最近在调研 JDK 17,并且试着将之前的一个小项目升级了一下,在测试环境跑了一段时间。 最终,决定了,新项目要采用 JDK 17 了。
  JDK 1.8:"不是说好了,他发任他发,你用 Java 8 吗?"
  不光是我呀,连 Spring Boot 都开始要拥护 JDK 17了,下面这一段是 Spring Boot 3.0 的更新日志。  "
  Spring Boot 3.0 requires Java 17 as a minimum version. If you are currently using Java 8 or Java 11, you"ll need to upgrade your JDK before you can develop Spring Boot 3.0 applications.
  "
  Spring Boot 3.0 需要 JDK 的最低版本就是 JDK 17,如果你想用 Spring Boot 开发应用,你需要将正在使用的 Java 8 或 Java 11升级到 Java 17。
  选用 Java 17,概括起来主要有下面几个主要原因:
  1、JDK 17 是 LTS (长期支持版),可以免费商用到 2029 年。而且将前面几个过渡版(JDK 9-JDK 16)去其糟粕,取其精华的版本;
  2、JDK 17 性能提升不少,比如重写了底层 NIO,至少提升 10% 起步;
  3、大多数第三方框架和库都已经支持,不会有什么大坑;
  4、准备好了,来吧。
  拿几个比较好玩儿的特性来说一下 JDK 17 对比 JDK 8 的改进。  密封类
  密封类应用在接口或类上,对接口或类进行继承或实现的约束,约束哪些类型可以继承、实现。例如我们的项目中有个基础服务包,里面有一个父类,但是介于安全性考虑,值允许项目中的某些微服务模块继承使用,就可以用密封类了。
  没有密封类之前呢,可以用  final 关键字约束,但是这样一来,被修饰的类就变成完全封闭的状态了,所有类都没办法继承。
  密封类用关键字  sealed 修饰,并且在声明末尾用 permits 表示要开放给哪些类型。
  下面声明了一个叫做  SealedPlayer 的密封类,然后用关键字 permits 将集成权限开放给了 MarryPlayer 类。 public sealed class SealedPlayer permits MarryPlayer {     public void play() {         System.out.println("玩儿吧");     } }
  之后  MarryPlayer  就可以继承 SealedPlayer 了。 public non-sealed class MarryPlayer extends SealedPlayer{     @Override     public void play() {         System.out.println("不想玩儿了");     } }
  继承类也要加上密封限制。比如这个例子中是用的  non-sealed ,表示不限制,任何类都可以继承,还可以是 sealed ,或者 final 。
  如果不是 permits 允许的类型,则没办法继承,比如下面这个,编译不过去,会给出提示 "java: 类不得扩展密封类:org.jdk17.SealedPlayer(因为它未列在其 "permits" 子句中)"  public non-sealed class TomPlayer extends SealedPlayer {      @Override     public void play() {      } } 空指针异常String s = null; String s1 = s.toLowerCase();
  JDK1.8 的版本下运行:  Exception in thread "main" java.lang.NullPointerException  at org.jdk8.App.main(App.java:10)
  JDK17的版本(确切的说是14及以上版本)  Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.toLowerCase()" because "s" is null  at org.jdk17.App.main(App.java:14)
  出现异常的具体方法和原因都一目了然。如果你的一行代码中有多个方法、多个变量,可以快速定位问题所在,如果是 JDK1.8,有些情况下真的不太容易看出来。  yield关键字public static int calc(int a,String operation){     var result = switch (operation) {         case "+" -> {             yield a + a;         }         case "*" -> {             yield a * a;         }         default -> a;     };     return result; } 换行文本块
  如果你用过 Python,一定知道Python 可以用  "hello world" 、"hello world" 、""" hello world """ 、""" hello world """  四种方式表示一个字符串,其中后两种是可以直接支持换行的。
  在 JDK 1.8 中,如果想声明一个字符串,如果字符串是带有格式的,比如回车、单引号、双引号,就只能用转义符号,例如下面这样的 JSON 字符串。  String json = "{ " +         "  "name": "古时的风筝", " +         "  "age": 18 " +         "}";
  从 JDK 13开始,也像 Python 那样,支持三引号字符串了,所以再有上面的 JSON 字符串的时候,就可以直接这样声明了。  String json = """         {           "name": "古时的风筝",           "age": 18         }         """; record记录类
  类似于 Lombok 。
  传统的Java应用程序通过创建一个类,通过该类的构造方法实例化类,并通过getter和setter方法访问成员变量或者设置成员变量的值。有了record关键字,你的代码会变得更加简洁。
  之前声明一个实体类。  public class User {     private String name;      public String getName() {         return name;     }     public void setName(String name) {         this.name = name;     } }
  使用  Record 类之后,就像下面这样。 public record User(String name) {  }
  调用的时候像下面这样  RecordUser recordUser = new RecordUser("古时的风筝"); System.out.println(recordUser.name()); System.out.println(recordUser.toString());
  输出结果
  Record 类更像是一个实体类,直接将构造方法加在类上,并且自动给字段加上了 getter 和 setter。如果一直在用 Lombok 或者觉得还是显式的写上 getter 和 setter 更清晰的话,完全可以不用它。  G1 垃圾收集器
  JDK8可以启用G1作为垃圾收集器,JDK9到 JDK 17,G1 垃圾收集器是默认的垃圾收集器,G1是兼顾老年代和年轻代的收集器,并且其内存模型和其他垃圾收集器是不一样的。
  G1垃圾收集器在大多数场景下,其性能都好于之前的垃圾收集器,比如CMS。  ZGC
  从 JDk 15 开始正式启用 ZGC,并且在 JDK 16后对 ZGC 进行了增强,控制 stop the world 时间不超过10毫秒。但是默认的垃圾收集器仍然是 G1。
  配置下面的参数来启用 ZGC 。  -XX:+UseZGC
  可以用下面的方法查看当前所用的垃圾收集器
  JDK 1.8 的方法  jmap -heap 8877
  JDK 1.8以上的版本  jhsdb jmap --heap --pid 8877
  例如下面的程序采用 ZGC 垃圾收集器。
  其他一些小功能
  1、支持 List.of()、Set.of()、Map.of()和Map.ofEntries()等工厂方法实例化对象;
  2、Stream API 有一些改进,比如  .collect(Collectors.toList()) 可以直接写成 .toList() 了,还增加了 Collectors.teeing() ,这个挺好玩,有兴趣可以看一下;
  3、 HttpClient 重写了,支持 HTTP2.0,不用再因为嫌弃 HttpClient 而使用第三方网络框架了,比如OKHTTP; 升级 JDK 和 IDEA
  安装 JDK 17,这个其实不用说,只是推荐一个网站,这个网站可以下载各种系统、各种版本的 JDK 。地址是 https://adoptium.net/。
  还有,如果你想在 IDEA 上使用 JDK 17,可能要升级一下了,只有在  2021.02 版本之后才支持 JDK 17。
  各位爱学习的同学,赶紧试一下吧。
  来源:https://mp.weixin.qq.com/s/5kPUG7IRlomlr3Ov2HIIKA
  作者:风筝

未来3年,请善待你所在的单位作者洞见Leyla任凭风浪起,稳坐钓鱼船。昨晚12点的时候,我在后台收到一位读者的倾诉留言。他说自己不知道从什么时候开始,变得特别焦虑,每天下班回家,都要在车里待好久。一方面自己收国际油价已跌回年初低点小摩仍列举四大理由坚定看好油价财联社9月26日讯(编辑刘蕊)尽管整个第三季度,国际油价一直在稳步下滑,并跌回年初低点,但摩根大通仍然坚定看多油价,并预计油价下跌的情况可能在今年第四季度发生反转。摩根大通分析师坚2022年,国家为何要重点发展鄂州?鄂州,湖北省地级市。2022年,国家为何要重点发展鄂州?现状分析目前形成武鄂黄黄经济大走廊,是鄂黄黄三市,主动与武汉对接争取的。特别是鄂州,提出武鄂同城十年了,主动服务于东湖高新区商务部18月我国企业承接服务外包合同额同比增长12。5商务部数据显示,18月,我国企业承接服务外包合同额12280亿元人民币,执行额8314亿元,同比分别增长12。5和12。8。其中,承接离岸服务外包合同额6989亿元,执行额4793今天随着官宣华能集团董事长舒印彪离任,也宣告了一个时代的终结今天随着官宣华能集团董事长舒印彪离任,这位有着多重身份(中国工程院院士中国电机工程学会理事长IEC现任主席)超期服役的央企领导人也平静的退出了历史舞台。舒印彪浸淫电力四十年,从国家欧盟对俄制裁是彻底的失败!这个国家外长发声来源央视财经当地时间25日,匈牙利外长西雅尔多在接受媒体采访时表示,欧盟制裁俄罗斯的政策是彻底失败的。制裁不仅没有使局势接近和平,反而正在反噬欧洲。西雅尔多表示,目前欧洲通胀严重,欧国联2不敌丹麦仍保级克罗地亚出线奥地利降级北京时间9月26日凌晨2点45分,202223赛季欧国联A1组小组赛最后一轮展开争夺,法国队客场对阵丹麦。丹麦队由多尔贝格和奥尔森连续建功,法国队在上半场6分钟内连丢两球,姆巴佩下产业政策聚焦强韧性优布局不久前召开的中共中央政治局会议分析研究了当前经济形势,部署了下半年经济工作。会议强调,要提高产业链供应链稳定性和国际竞争力,畅通交通物流,优化国内产业链布局,支持中西部地区改善基础法国5分钟连丢两球客场02不敌丹麦,多尔贝格奥尔森建功北京时间9月26日245,欧国联A级第6轮,法国客场挑战丹麦,本场比赛主裁判是伊斯特万。上半场,姆巴佩抽射被扑出,格列兹曼推射被挡出,卡马文加远射打偏,多尔贝格铲射破门,奥尔森扩大格列兹曼世界杯前输球是好事丹麦的高位防守让我们很难受直播吧9月26日讯今晨的欧国联比赛,法国队虽然02不敌丹麦,但是格列兹曼还是看到了积极的一面,他认为这样的比赛对球队有好处。格列兹曼说我们在前30分钟踢得很好,然后我们在角球防守时欧国联综合荷兰一球小胜进四强法国02负丹麦新华社北京9月26日电(记者岳冉冉)北京时间26日凌晨进行的20222023赛季欧洲国家足球联赛A级联赛结束两场焦点战。法国队5分钟内连失两球不敌丹麦队荷兰队主场一球小胜比利时队,
溧阳空中草莓采摘忙,农旅融合绘新景来源交汇点新闻客户端交汇点讯阳春三月,溧阳市戴埠镇蓝城悠然南山循环农场的空中草莓园进入了采摘旺季,吸引不少市民游客前来,享受春日采摘乐趣。这个草莓好香啊,闻起来像水蜜桃!这个是什么1043靖江春兰展别一样的美中国东部江苏一带办兰花展有一个最大的特点,那就是充分突出兰花的雅致,例如在镇江北固山公园,扬州个园,无锡宜兴泰州溧阳金坛靖江等地,展馆布置都是以清雅为主,充分衬托出兰花的魅力,这样相约安徽向春而行畅游滨水濉溪品味市井烟火中安在线中安新闻客户端讯一手击鼓,一手打板,亦说亦唱高亢婉转的淮北大鼓声阵阵,一曲杨广观花娓娓道来一千多年前隋炀帝为观花驱使童男童女拉纤的故事。在临涣老茶馆,四方游客坐在木桌木凳上不要再被酸奶有助于消化这句话误导了!从小我们就听说过喝酸奶有助于消化,饭后一杯酸奶润肠又通便。但实际喝完作用确实不太明显,通便的作用还没过期的牛奶来的明显,那酸奶到底是否有益健康?又要如何选择适合自己的酸奶呢?今天就为什么有很多人不爱吃香菜香菜是人们在平时的日常生活中会食用到的一种食材,因为味道比较特殊,常被大家当成一种香料,搭配在不同的菜色里面,因为香菜闻起来是香的所以有了香菜的得名。生活中,我们常常会遇到很多爱吃胃不好的人能吃蜂王浆吗?对胃不好的人说,蜂王浆是福音还是禁忌蜂王浆被誉为大自然的宝藏,拥有丰富的营养成分和神奇的保健作用。然而,对于胃不好的人来说,蜂王浆究竟是福音还是禁忌呢?本文将为您详细解答这个问题。一胃不好的人能吃蜂王浆吗?胃不好的原艺术乡建扮靓乡村颜值擦亮乡土底色小山村变成大画布,深山里建起艺术院落近年来,各地涌现出许多艺术气息浓厚的村子,艺术与乡建在这些村子双向奔赴无缝衔接,成为乡村振兴路途中的一道亮丽风景。艺术乡建是对文脉的延续,也是对农旅融合助推千年古县乡村振兴山东省第一大河沂河从沂水县穿城而过,见证着千年古县的源远流长。天上王城人间彩虹地下奇观红色沂蒙是沂水县旅游的一句宣传语,更是对县域内1个5A级景区5个4A级景区16个3A级景区等特小镇做题家李波让好玩振兴乡村丨小镇青年系列报道青年名片李波,36岁,出生在安徽宿州埇桥区北杨寨乡,浙江大学农业学博士。他辗转于三个小镇皖北老家非洲Kabuki镇长沙捞刀河。自诩小镇做题家,他一直在做一道题乡村振兴。亲历非洲战乱权威发布丨打造永不落幕的湖畔花园!2023首届文昌湖樱花节活动精彩纷呈大众网海报新闻记者李玉娟淄博报道3月30日,淄博市人民政府新闻办公室组织召开新闻发布会,邀请淄博文旅发展集团有限公司党委委员副总经理吴迪就2023首届文昌湖樱花节具体筹备情况及活动新形势下,如何抢夺跨境电商的黄金赛道?来源人民网原创稿过去一年,对来自江西的家具生产商王怡而言,是艰辛又焦虑的一年。她的公司主要生产实木家具,往年订单较多,无须在销售渠道上花太多心思。以往工厂只需向外销平台供货即可。王