您好,登錄后才能下訂單哦!
將前端思想var關(guān)鍵字引入java后段,自動(dòng)檢測所屬于類型,一種情況除外,不能為null,因?yàn)椴荒芘袛嗑唧w類型,會報(bào)異常。
@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可以用于任何類型,基本類型,集合,以及實(shí)體類等等都可以,省略了我們在前面寫入具體的類型,我們盡管var,讓它自己去判斷就好了。
在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]
Java.io.ByteArrayOutputStream,重載toString()方法,通過使用指定的字符集編碼字節(jié),將緩沖區(qū)的內(nèi)容轉(zhuǎn)換為字符串,以前是默認(rèn)沒有參數(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()); }
這個(gè)是我們正常的格式,但是當(dāng)我們修改代碼,str.getBytes("gbk")的時(shí)候,創(chuàng)建的txt為亂碼,那么我們使用toString()的新增方法,替換gbk。
Java.io.PrintStream,Java.io.PrintWriter,這兩個(gè)類都有三個(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,可以寫“d:/aa.txt“ 不過都需要提前創(chuàng)建好txt文件夾
結(jié)果為:
但是我們這個(gè)txt默認(rèn)的都是utf-8格式的,如果突然改成gbk的話,格式會不匹配出現(xiàn)亂碼,畢竟txt文件格式要和輸出的格式一致才可以,這是我們可以使用一下。
var pri = new PrintWriter("/Users/tentsuuhou/Desktop/11.txt","gbk");
我們直接在后面添加一個(gè)格式參數(shù)就可以直接解決啦
Java.io.Reader:transferTo從這個(gè)Reader中讀取所有字符串,并按照所讀取的順序?qū)⒆址畬懭虢o指定的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文件拷貝過來了,注意編碼格式也要一致才可以。用這個(gè)方法方便了許多。
java.util.Formatter、java.util.Scanner新增三個(gè)構(gòu)造方法,除了其他參數(shù)之外,都需要一個(gè)charset參數(shù),將11.txt內(nèi)容替換成這樣
@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é)果為:
1、JDK9垃圾收集器 :新生代:ParNew收集器;老年代:Parallel Old收集器 Stop The World 2、JDK10垃圾收集器:JDK10:G1(Garbage-Frist)全收集器
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。