重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~
东乃网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联公司成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
自从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)、私有接口方法(?)、StreamAPI(?)、FlowAPI(?)等。
其中,模块系统、JShell完全是鸡肋,可以忽略;
日志集成基本上也不会用Java自带的,跳过;
关于GC的后面会说,这里跳过;
Http 2 Client在后续Java10及更高版本中又有改进,Java9中的语法基本被废弃,所以可以先不看;
FlowAPI其实也是鸡肋,在外部MQ如此强大的情况下,没有人会用Java自带的Pub-Sub。
所以总结说起来,Java9真正比较有用的就是集合工厂方法、私有接口方法和StreamAPI了。
在Java9以前创建集合的时候,是这么干的:
/**
* 以前的集合创建方法
*/
Set set = new HashSet<>();
set.add("A");
set.add("B");
set.add("C");
set= Collections.unmodifiableSet(set);
System.out.println(set);
List list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list= Collections.unmodifiableList(list);
System.out.println(list);
Map map = new HashMap<>();
map.put("A", "Apple");
map.put("B", "Boy");
map.put("C", "Cat");
map= Collections.unmodifiableMap(map);
System.out.println(map);