大家好,欢迎来到IT知识分享网。
前言
经历4次跳票,java9终于在2017年9月21日发布
模块化
java9中实现了java的模块化 ,模块化不允许在src根目录下创建类单独运行,必须都在module里
java9之前java生态暴露的问题:
模块化的目的:
模块化的使用:
新建两个模块:
如果要想使用另一个模块的类,必须使用模块声明:
模块一抛出类:
模块二引入需要的模块名,没有使用的不能引入,否则报错,必须先使用再引入:
多版本兼容jar
java9的这个功能,可以使我们自己的功能升级新的jdk,而不必强迫其他引用的人进行升级,很实用
比如:我的jar有很多用户在引用,我想用jdk新特性重写一些接口,java9中即使我重写了,别人也可以继续在jdk7环境下使用我的包,只需要使用多版本jar兼容即可
使用方法:
jshell
如果你想测试一段简单的代码,在java9中,就不必再打开编译器,再写个main方法运行了,可以直接使用jshell
常用命令:
/reset : 清空所有代码
/list: 列出之前写的代码
/history: 列出历史命令
/methods: 列出已声明的方法
/edit: 打开新面板编辑代码:
/drop: 删除,可跟行数或者方法名进行删除
保存与导入:
{}升级
trycatch升级
String底层存储结构变化
冷知识:
JDK9之前String底层使用char数组存储数据private final char value[],JDK9将String底层存储数据改为byte数组存储数据private final byte[] value。
StringBuffer和StringBuilder也同样做了变更,将以往char数组改为byte数组
对于英文占用内存更小,汉字则意义不大,所以java9之后,可以使用英文日志,节省内存开销
增强StreamApi
java9中,Stream新增了四个方法:
1 takeWhile
2 dropWhile
3 ofNullable
//允许创建一个值为null的Stream
Stream.ofNullable(null);
4 iterate重载
默认垃圾收集器G1
jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)
jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)
jdk1.9 默认垃圾收集器G1
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/29379.html