JDK10新特性詳解-創(chuàng)新互聯(lián)

1、局部變量var

      將前端思想var關(guān)鍵字引入java后段,自動(dòng)檢測(cè)所屬于類(lèi)型,一種情況除外,不能為null,因?yàn)椴荒芘袛嗑唧w類(lèi)型,會(huì)報(bào)異常。

創(chuàng)新互聯(lián)于2013年成立,先為貴德等服務(wù)建站,貴德等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為貴德企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
@Test
public void test1(){
    var number = 10;
    var str    = "i like java";
    var list   = new ArrayList<>();
    var map    = new HashMap<>();
    var set    = new HashSet<>();
    list.add("test var is list");
    map.put("1","test var is map");
    set.add("test var is set");
    System.out.println(number);
    System.out.println(str);
    System.out.println(list.toString());
    System.out.println(map.toString());
    System.out.println(set.toString());
}

      結(jié)果:

10
i like java
[test var is list]
{1=test var is map}
[test var is set]

      var可以用于任何類(lèi)型,基本類(lèi)型,集合,以及實(shí)體類(lèi)等等都可以,省略了我們?cè)谇懊鎸?xiě)入具體的類(lèi)型,我們盡管var,讓它自己去判斷就好了。

2、copyOf方法

      在java.util.List、java.util.Set、java.util.Map新增加了一個(gè)靜態(tài)方法copyOf,這些方法按照其迭代順序返回一個(gè)不可修改的列表、集合或映射包含了給定的元素的集合。但是如果將返回后的集合繼續(xù)修改,那么報(bào)異常。

@Test
public void test2(){
    var list = new ArrayList<>();
    list.add("first");
    list.add("second");
    list.add("third");
    var result = List.copyOf(list);
    System.out.println(result.toString());
}

      結(jié)果:

[first, second, third]

3、ByteArrayOutputStream

      Java.io.ByteArrayOutputStream,重載toString()方法,通過(guò)使用指定的字符集編碼字節(jié),將緩沖區(qū)的內(nèi)容轉(zhuǎn)換為字符串,以前是默認(rèn)沒(méi)有參數(shù),現(xiàn)在加了一個(gè)編碼的字符方法。

public static void main(String[] args) throws Exception {
    String str = "我喜歡java";
    ByteArrayInputStream bis = new ByteArrayInputStream(str.getBytes("utf-8"));
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    int c = 0;
    while((c = bis.read()) != -1) {
        bos.write(c);
    }
    //bos.toString() 默認(rèn)的使用的UTF-8編碼
    System.out.println(bos.toString());
}

JDK10新特性詳解

JDK10新特性詳解

      這個(gè)是我們正常的格式,但是當(dāng)我們修改代碼,str.getBytes("gbk")的時(shí)候,創(chuàng)建的txt為亂碼,那么我們使用toString()的新增方法,替換gbk。

JDK10新特性詳解

4、PrintStream、PrintWriter

      Java.io.PrintStream,Java.io.PrintWriter,這兩個(gè)類(lèi)都有三個(gè)新的構(gòu)造方法,他們需要而外的參數(shù)charset

@Test
public void test3() throws FileNotFoundException, UnsupportedEncodingException {
    String str = "我也特別喜歡java";
    var pri    = new PrintWriter("/Users/tentsuuhou/Desktop/11.txt");
    pri.println(str);
    pri.flush();
    pri.close();
}

      我這個(gè)路徑是mac電腦的,如果你是windows,可以寫(xiě)“d:/aa.txt“ 不過(guò)都需要提前創(chuàng)建好txt文件夾

      結(jié)果為:

JDK10新特性詳解

      但是我們這個(gè)txt默認(rèn)的都是utf-8格式的,如果突然改成gbk的話,格式會(huì)不匹配出現(xiàn)亂碼,畢竟txt文件格式要和輸出的格式一致才可以,這是我們可以使用一下。

var pri = new PrintWriter("/Users/tentsuuhou/Desktop/11.txt","gbk");

      我們直接在后面添加一個(gè)格式參數(shù)就可以直接解決啦

5、Reader:transferTo方法

Java.io.Reader:transferTo從這個(gè)Reader中讀取所有字符串,并按照所讀取的順序?qū)⒆址畬?xiě)入給指定的Writer

@Test
public void test4() throws IOException {
    var reader = new BufferedReader(new InputStreamReader(new FileInputStream("/Users/tentsuuhou/Desktop/11.txt"), "utf-8"));
    var p = new PrintWriter(new File("/Users/tentsuuhou/Desktop/12.txt"));
    reader.transferTo(p);
    p.flush();
    p.close();
    reader.close();
}

      結(jié)果:12.txt文件將11.txt文件拷貝過(guò)來(lái)了,注意編碼格式也要一致才可以。用這個(gè)方法方便了許多。

6、Formatter、Scanner

      java.util.Formatter、java.util.Scanner新增三個(gè)構(gòu)造方法,除了其他參數(shù)之外,都需要一個(gè)charset參數(shù),將11.txt內(nèi)容替換成這樣

JDK10新特性詳解

@Test
public void test5() throws FileNotFoundException {
    var scan = new Scanner(new FileInputStream(new File("/Users/tentsuuhou/Desktop/11.txt")),"utf-8");
    scan.useDelimiter(" |,");
    while(scan.hasNext()) {
        System.out.println(scan.next());
    }
}

      scan.useDelimiter(" |,"); 這是空格或者‘,’ 都要分割,如下結(jié)果為:

JDK10新特性詳解

7、垃圾收集器的優(yōu)化
1、JDK9垃圾收集器 :新生代:ParNew收集器;老年代:Parallel Old收集器   Stop The World
2、JDK10垃圾收集器:JDK10:G1(Garbage-Frist)全收集器

網(wǎng)站名稱(chēng):JDK10新特性詳解-創(chuàng)新互聯(lián)
分享鏈接:http://bm7419.com/article32/cdiosc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、商城網(wǎng)站網(wǎng)站維護(hù)、面包屑導(dǎo)航、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)