6、Java9新特性之---钻石操作符的升级
//java7及以前 Map<String,String> map7 = new HashMap<String,String>(); //java8 <>没有了数据类型 Map<String,String> map8 = new HashMap<>(); //java9 添加了匿名内部类的功能 +{} Map<String,String> map9 = new HashMap<>(){}; |
7、Java9新特性之---异常处理try升级
首先看下jdk7,8,9 的try catch的比较
Java7处理方式:
//java7及以前写法 每一个流打开的时候都要关闭 @Test public void test7(){ InputStreamReader reader = null; try{ reader = new InputStreamReader(System.in); reader.read(); }catch (IOException e){ e.printStackTrace(); }finally { if (reader != null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } |
java8 的处理方式:
//java8及 每一个流打开的时候都要关闭,但是在try的括号中来进行关闭 @Test public void test7(){ try(InputStreamReader reader =new InputStreamReader(System.in)){ reader.read(); }catch (IOException e){ e.printStackTrace(); } } |
java9的处理方式:
//java9及 每一个流打开的时候都要关闭,但是在try的括号中来进行关闭,在 //java8的基础上进一步升级 直接在try括号中直接写入 变量就好,如果有多个流,就用分号隔开 //try(reader;writer){} @Test public void test7(){ InputStreamReader reader =new InputStreamReader(System.in); try(reader){ reader.read(); }catch (IOException e){ e.printStackTrace(); } } |
这下子应该一幕了然了吧
8、Java9新特性之---特殊标识符增加限制
java8 之前 String _ ="hello"; 这样的标识符可以用,java9就用不到。
9、Java9新特性之---String底层存储结构更换
java8之前 String的底层结构类型都是 char[] ,但是java9 就替换成 byte[] 这样来讲,更节省了空间和提高了性能
之所以替换是因为 之前一直是一个汉字一个两个字节,但是字母是一个字节,而一个char代表两个字节,由之前java8的utf-16 装换成了 utf-8/utf-16/latin三种存储方式
*****同理,StringBuilder StringBuffer也更换了底层数据结构*************
10、Java9新特性之---Stream API 新方法的添加
在原有Stream API 新添加了4个方法,takeWhile dropWhile ofNullable iterate(新重载方法)
首先解释 takeWhile 当达到一定条件就结束:输出结果为45 43,如图
而 dropWhile 则和takeWhile 相反
ofNullable, 在java8中 Stream中的元素不能完全为null,否则空指针异常,而在java9的升级中,允许创建null
iterate 不加条件无线循环
11、Java9新特性之---引进HttpClient
以往我们都是通过maven添加httpclient ,java9直接引入即可
Java9所有特性都是为了提高性能和内存。。。。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。