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

真的要开始用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年后,再看文章马伊琍的各自境遇,人生差距一个天一个地去年的吴亦凡,今年的李易峰,哎!又一个顶流明星,因艺德问题,被打落神坛。在娱乐圈这个大染缸里,如果不洁身自好,即使你拥有再多的忠实粉丝,也难以逃脱被封杀的命运。在娱乐圈里,如果说最黄斌汉美元加息结束!新能源就掀起大行情这是常识,美元加息周期不好涨,美元降息周期易有行情。去年市场主要依靠新能源支撑,今年新能源也涨不动了,进入横盘蓄势周期。当然,至少是不怎么跌的。现在下一轮行情什么时候崛起,就等美元经济日报丨坚定不移走旅游高质量发展之路张家界何以火出圈9月的张家界,山色明丽,满目苍翠,一派生机勃勃。世界最高的吊脚楼形态建筑张家界七十二奇楼开街试营业,世界首台大型山水实景演出音乐剧天门狐仙新刘海砍樵剧场座无虚席,七星山景区悬崖温泉iPhone14ProMax对比三星S22UItra,机皇之争,哪款影像更强大?iPhone14ProMax和三星S22UItra算是最有资格自称机皇的两款手机了,两款手机不仅堆料足,而且价格也很高,只不过销量一个极高一个极低,但这并不妨碍它们的机皇。那么iP在温柔甜美的梦里寻找你在温柔甜美的梦里寻找树木流露出美好的枝叶语言的美丽成就诗人的心也没有什么生命的花儿开放微笑是你的最珍贵的宝物没人会不喜欢甜美的梦诗人们喜爱这个美丽的世界梦中的花园里感受到美好的爱流PS20229月最新最先进最强大的修图插件来了!拥有百种功能RetouchProPanel中文汉化版从1。0版更新到了最新的2。03版无偿领取提示随意评论私信我关键词PS具有功能强大且先进的人工智能系统号称摄影行业中最先进的面板由世界顶级摄定格!织金街头的红橙黄绿按下暂停键的织金静谧而有些空荡有这样一些温暖背影勾勒出了织金秋日里最暖人心的色彩这些背影是平安绿是志愿红是守护蓝看得见的是背影感受到的是力量是他们共同绘就了织金最靓丽的底色守护着你我的再次欧洲之旅(一)继第一次欧洲旅行之后,我一直觉得意犹未尽,再次去欧洲的想法油然而生,经过半年精心的准备大量阅读相关书籍资料影视做攻略。并根据自己的兴趣爱好,敲定要去的国家。我主要喜欢有历史有情结自中国小伙的航海日记(36)非洲街头偶遇美女,请我回家喝咖啡?2020年3月9日,我从肯尼亚飞往埃塞俄比亚的首都亚的斯亚贝巴,跟两个即将和我一起航海的伙伴汇合来自河南的小胖同学和之前在希腊见过的俄罗斯船长。我们会在埃塞俄比亚玩两周,然后回到停2022换手机可以看这3款,性能强耗电少还便宜,用到2027不成问题2022年换手机可以看这3款,性能强耗电少还便宜,用到2027年不成问题第一款小米12SUltra后置三摄,5000万像素主摄镜头4800万潜望式长焦镜头4800万像素超广角镜头,
手表进水停走应该怎么办对于刚入手的手表,我们可能对一些注意事项并不了解,往往等问题发生了,才会在后期多加留意。手表不会无缘无故出现进水的情况,往往明白了事情的起因,才能在根源上避免。有人认为手表防水就不为什么现在钱不经花了?头条创作挑战赛我时常思考我要的是什么,想要成为什么样的人呢?自知自己并不是一个功利的人,但是想要更好的生活质量,就离不开一个钱字。在不断学习和成长的过程中,我发现,钱开始变得不值钱窗景四季流年每每从深圳回到老家,只要打开二楼卧室的房门呵,好大一扇窗户,后山的风景立马从窗户里涌进心田,顿生欢欣和喜悦。故乡,光这扇窗户,就给我的眼睛和心灵带来多少美好的回忆呢!钱钟书的窗如是因果循环,三思而行庄子道物无非彼,物无非是,自彼则不见,自知则知之。因此才说,自古因果不饶人,请谨慎,三思而行。这世界上最接近于大道运行的规矩就是因果,什么样的种子开出什么样的花,善因结出善果,恶因人若有实德,上天一定不会亏待他传统文化告诉我们,人的一生,所有人永恒不变的话题就是修身修德。德行究竟是什么?它虽然看不见也摸不着,却又真实地存在着。一个人如果忽略了德行的培养,无论当下已经拥有了什么样的结果,最有哪一句话突然让你扎了心1。再见,我说的再见是再也不见了,这一次向日葵要学会放弃太阳了2。不是什么温柔小孩其实我脾气很差只是憋着不说话而已3。后来才知道过度的热情就像热水养花。4。时间总是让人成长但从来不做人,人品为先,才能为次做事,明理为先,勤奋为次昨天,是张作费的机票明天,是尚未兑现的期票只有今天,才是现金,才有流通的价值。只要有勇气在众人面前说话,就有勇气私下与陌生人进行谈话,不论对方是何许的达官显贵。一生中你唯一需要回头节后错峰出游来尼山,绝美秋景互动体验,快乐不停歇一年好景君须记,最是橙黄橘绿时。如此舒适宜人的秋,适合登高望远,洗肺清心。秋意正浓,错峰出游正当时,尼山圣境上演最美秋色。在山湖间吸一口清新空气,看秋日尼山层林尽染,沉醉在传统文化ShibaInu这一新发现的支持将如何提升本周SHIB价格ShibaInu是像狗狗币一样的模因加密货币,是2021年增长最快的数字货币。资产增长的速度令人震惊,尤其是在其价格上涨了46,000,000之后。ShibaInu的交易价格现在是2022年双十一iPhone13价格会是多少?能降价多少钱?先看看618优惠促销的时候,天猫平台是满30050的优惠,5999元可以随意买一个1元的东西就可以凑到5000的价格,再领200元优惠券,就是4799元。而京东自营的价格和天猫官方曼城40登顶联赛21轮不败主场9连胜保底3球英格兰91年纪录诞生北京时间10月8日晚间,英超第10轮联赛继续进行,曼城坐镇主场,迎战南安普顿。两支球队在实力上还是有着明显的差距,曼城本赛季状态保持得相当不错,联赛和欧冠双线作战,依旧高歌猛进。周