java小知识点
break結(jié)束一個(gè)for循環(huán)時(shí)不會(huì)執(zhí)行for后面括號(hào)中最后一個(gè)分號(hào)后面的語句。
continue結(jié)束一次for循環(huán)跳入下一次循環(huán)之前要先執(zhí)行for后面括號(hào)中最后一個(gè)分號(hào)后面的語句。
read() ?有可能讀到1111 1111這樣開頭的數(shù)據(jù) 也就是說文件的開頭就是-1;read()在讀取時(shí)候byte提升為int。在前面添加0000 0000.
write()在寫入時(shí)候只取int的末尾8位有效數(shù)據(jù)。強(qiáng)轉(zhuǎn)
readLine()方法一行結(jié)束標(biāo)記是回車符。如果用bufferedWriter寫一行數(shù)據(jù) ?bout.write(line); ?到這里并沒有寫入回車符;所以要bout.newLine();
凡是用到buffer緩沖的記得flush();
補(bǔ)碼
1 -128~+127(1000 0000B~0111 1111B) 2 0111 1111 127 3 1111 1111 -1 4 0000 0000 0 5 1000 0000 -128
System.out.println()的解釋:
java.lang.System這是一個(gè)類,這個(gè)類有3個(gè)靜態(tài)成員變量:in,out,err. 其中out的類型是PrintSream,這個(gè)類有一個(gè)println()方法。
&?和?&&區(qū)別: ??& :無論左邊結(jié)果是什么,右邊都參與運(yùn)算。
??? ??? ??? ??? ??? ??&&: 短路與,如果左邊為false,那么右邊不參數(shù)與運(yùn)算。
?|?和||?區(qū)別: ? ??|:兩邊都運(yùn)算。
? ? ? ? ? ? ? ? ? ? ??||:短路或,如果左邊為true,那么右邊不參與運(yùn)算。
static
1,靜態(tài)方法只能訪問靜態(tài)成員,不可以訪問非靜態(tài)成員。
因?yàn)殪o態(tài)方法加載時(shí),優(yōu)先于對(duì)象存在,所以沒有辦法訪問對(duì)象中的成員。
2,靜態(tài)方法中不能使用this,super關(guān)鍵字。
因?yàn)閠his代表對(duì)象,而靜態(tài)在時(shí),有可能沒有對(duì)象,所以this無法使用。
Eclipse編碼設(shè)置UTF-8
Window->Preferences->General ->Content Type->Text->JSP 最下面設(shè)置為UTF-8
Window->Preferences->General->Workspace ? 面板Text file encoding 選擇UTF-8
Window->Preferences->Web->JSP Files 面板選擇 ISO 10646/Unicode(UTF-8)
Eclipse最有用快捷鍵
7. shift+enter及ctrl+shift+enterShift+enter在當(dāng)前行之下創(chuàng)建一個(gè)空白行,與光標(biāo)是否在行末無關(guān)。Ctrl+shift+enter則在當(dāng)前行之前插入空白行。8. Alt+方向鍵這也是個(gè)節(jié)省時(shí)間的法寶。這個(gè)組合將當(dāng)前行的內(nèi)容往上或下移動(dòng)。在try/catch部分,這個(gè)快捷方式尤其好使。9. ctrl+m大顯示屏幕能夠提高工作效率是大家都知道的。Ctrl+m是編輯器窗口最大化的快捷鍵。編碼解碼的亂碼問題
package javaBase.io;import java.io.IOException; import java.util.Arrays;/** 編碼:字符串變字節(jié)數(shù)組 String.getBytes(charsetName);* 解碼:字節(jié)數(shù)組變字符串new String(byte[],charsetName); * 服務(wù)器端:一般是用ISO8859-1(歐洲)不識(shí)別中文*/ public class EncodeDemo {public static void main(String[] args) throws IOException {String s = "你好";//默認(rèn)編碼,eclipse我已默認(rèn)utf-8byte[] b1 = s.getBytes();//默認(rèn)utf-8System.out.println(Arrays.toString(b1));//[-28, -67, -96, -27, -91, -67]//服務(wù)器端解碼String s1 = new String(b1,"iso8859-1");//用ISO8859-1解碼出錯(cuò)System.out.println(s1);//亂碼????//處理亂碼:byte[] b2 = s1.getBytes("iso8859-1");//用ISO8859-1再編碼一次String s2 = new String(b2,"utf-8");//再解碼System.out.println(s2);/** 說明:如果用支持中文的編碼解碼出錯(cuò),這樣做可能不行,因?yàn)榻獯a出錯(cuò)后再編碼會(huì)把亂碼當(dāng)做中文稀有漢字解碼* 還有“聯(lián)通”的gbk碼符合UTF-8規(guī)則*/}}對(duì)象的序列化
package javaBase.io; import java.io.*; /** 對(duì)象的序列化*/ public class ObjectSerial {public static void main(String[] args) throws Exception {writeObj();readObj();//這個(gè)函數(shù)不止IO異常}/** 本地持久化,對(duì)象寫入硬盤*/public static void writeObj() throws IOException{ObjectOutputStream oout = new ObjectOutputStream(new FileOutputStream("person.obj"));oout.writeObject(new Person("xukunn",25));oout.close();}/** 讀取硬盤上的對(duì)象*/public static void readObj() throws Exception{ObjectInputStream oin = new ObjectInputStream(new FileInputStream("person.obj"));Person p = (Person)oin.readObject();System.out.println(p);oin.close();} }class Person implements Serializable{private static final long serialVersionUID = 42L;//自定義,在修改了成員之后依然”認(rèn)得“private String name;private int age;public Person(String name,int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return name+":"+ age;}}轉(zhuǎn)載于:https://www.cnblogs.com/xukunn/p/4082221.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
- 上一篇: web app会遇到那些问题
- 下一篇: 《Javascript高级程序设计》读书