网站首页 > 精选教程 正文
您好,我是湘王,这是我的头条号「湘王说」,欢迎您来,欢迎您再来~
自从Java在2009年被Oracle收购之后,就不再开源,除了Oracle官方发布的版本之外,还有OpenJDK版本,这两者的区别可以自行找某度去搞明白。对于没有几千万用户的应用来说,OpenJDK已经足够了,即使是一些大厂,内部系统用OpenJDK也足够了。
从Java 8开始,整个JDK就一直在致力于不断改进,不断融合新的开发特性。Java目前始终保持前向兼容,所以如果有新的稳定版JDK出来,就可以立即使用新的JDK,尝试一些新特性,而不必担心不兼容的问题(可能个别地方有改动,但对个人及小型开发来说可以忽略不计)。
先做一些名词解释:
1、JEP:Java Enhancement Proposals,Java增强提案。
2、JSR:Java Specification Requests的缩写,意思是Java规范提案,是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。
3、CSR:是Compatibility & Specification Review的缩写,也就是兼容性和特征检视。
4、?标记:是那些未在官方JEP中列出,但明确在该版本Java API中具有,而前一版本API没有的特性。
先来看看Java9增加一些特性:
Java9主要的改进包括模块系统(261)、JShell(222)、日志集成(264)、弃用GC组合(214)、统一JVM日志(158)、统一GC日志(271)、集合工厂方法(269)、G1作为默认GC(248)、废弃CMS GC(291)、Http 2 Client(110)、私有接口方法(?)、Stream API(?)、Flow API(?)等。
其中,模块系统、JShell完全是鸡肋,可以忽略;
日志集成基本上也不会用Java自带的,跳过;
关于GC的后面会说,这里跳过;
Http 2 Client在后续Java10及更高版本中又有改进,Java9中的语法基本被废弃,所以可以先不看;
Flow API其实也是鸡肋,在外部MQ如此强大的情况下,没有人会用Java自带的Pub-Sub。
所以总结说起来,Java9真正比较有用的就是集合工厂方法、私有接口方法和Stream API了。
在Java9以前创建集合的时候,是这么干的:
而Java9就开始偷懒了:
Java8一个接口中能定义如下几种变量/方法:
1、常量
2、抽象方法
3、默认方法
4、静态方法
Java9又增加了两种:
1、私有方法
2、私有静态方法
可以敲代码试试看:
基于Java8的流式编程,Java9又增加了几个方法:takeWhile、dropWhile、iterate和ofNullable。来看看代码:
相比较于Java 9,Java10的特性少了很多:
比较有意思的就是增加了一个叫做var的关键字(向Javascript学习吗?Java也想长个script的尾巴?)
虽然多了var这个关键字,但我想真正习惯这种用法的人毕竟还是少数吧。而且对于大多数码农来说,如果在接手的系统中看到这种「新式」代码,可能会有点懵。至于其他新增的特性,基本都是鸡肋。
感谢您的大驾光临!咨询技术、产品、运营和管理相关问题,请关注后留言。欢迎骚扰,不胜荣幸~
猜你喜欢
- 2025-01-09 小心陷阱!Java中常犯的10个错误
- 2025-01-09 基本功 | Java即时编译器原理解析及实践
- 2025-01-09 Java 9特性抢鲜看
- 2025-01-09 赶快看看Java11,不然你就out了
- 2025-01-09 详解java5、java6、java7、java8、java9新特性
- 2025-01-09 微信开发最新Java SDK来了:WxJava3.9.0
- 2025-01-09 RHEL9上安装JAVA,有手就会!
- 2025-01-09 Java 一周更新综述:Spring、JDK、Hibernate、EclipseStore等
- 2025-01-09 C# 13 和 .NET 9 全知道 :12 使用 .NET 现代网页开发 (2)
- 2025-01-09 起飞,会了这4个 Intellij IDEA 调试魔法,阅读源码都简单了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)