java小知识点
break結束一個for循環時不會執行for后面括號中最后一個分號后面的語句。
continue結束一次for循環跳入下一次循環之前要先執行for后面括號中最后一個分號后面的語句。
read() ?有可能讀到1111 1111這樣開頭的數據 也就是說文件的開頭就是-1;read()在讀取時候byte提升為int。在前面添加0000 0000.
write()在寫入時候只取int的末尾8位有效數據。強轉
readLine()方法一行結束標記是回車符。如果用bufferedWriter寫一行數據 ?bout.write(line); ?到這里并沒有寫入回車符;所以要bout.newLine();
凡是用到buffer緩沖的記得flush();
補碼
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這是一個類,這個類有3個靜態成員變量:in,out,err. 其中out的類型是PrintSream,這個類有一個println()方法。
&?和?&&區別: ??& :無論左邊結果是什么,右邊都參與運算。
??? ??? ??? ??? ??? ??&&: 短路與,如果左邊為false,那么右邊不參數與運算。
?|?和||?區別: ? ??|:兩邊都運算。
? ? ? ? ? ? ? ? ? ? ??||:短路或,如果左邊為true,那么右邊不參與運算。
static
1,靜態方法只能訪問靜態成員,不可以訪問非靜態成員。
因為靜態方法加載時,優先于對象存在,所以沒有辦法訪問對象中的成員。
2,靜態方法中不能使用this,super關鍵字。
因為this代表對象,而靜態在時,有可能沒有對象,所以this無法使用。
Eclipse編碼設置UTF-8
Window->Preferences->General ->Content Type->Text->JSP 最下面設置為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在當前行之下創建一個空白行,與光標是否在行末無關。Ctrl+shift+enter則在當前行之前插入空白行。8. Alt+方向鍵這也是個節省時間的法寶。這個組合將當前行的內容往上或下移動。在try/catch部分,這個快捷方式尤其好使。9. ctrl+m大顯示屏幕能夠提高工作效率是大家都知道的。Ctrl+m是編輯器窗口最大化的快捷鍵。編碼解碼的亂碼問題
package javaBase.io;import java.io.IOException; import java.util.Arrays;/** 編碼:字符串變字節數組 String.getBytes(charsetName);* 解碼:字節數組變字符串new String(byte[],charsetName); * 服務器端:一般是用ISO8859-1(歐洲)不識別中文*/ public class EncodeDemo {public static void main(String[] args) throws IOException {String s = "你好";//默認編碼,eclipse我已默認utf-8byte[] b1 = s.getBytes();//默認utf-8System.out.println(Arrays.toString(b1));//[-28, -67, -96, -27, -91, -67]//服務器端解碼String s1 = new String(b1,"iso8859-1");//用ISO8859-1解碼出錯System.out.println(s1);//亂碼????//處理亂碼:byte[] b2 = s1.getBytes("iso8859-1");//用ISO8859-1再編碼一次String s2 = new String(b2,"utf-8");//再解碼System.out.println(s2);/** 說明:如果用支持中文的編碼解碼出錯,這樣做可能不行,因為解碼出錯后再編碼會把亂碼當做中文稀有漢字解碼* 還有“聯通”的gbk碼符合UTF-8規則*/}}對象的序列化
package javaBase.io; import java.io.*; /** 對象的序列化*/ public class ObjectSerial {public static void main(String[] args) throws Exception {writeObj();readObj();//這個函數不止IO異常}/** 本地持久化,對象寫入硬盤*/public static void writeObj() throws IOException{ObjectOutputStream oout = new ObjectOutputStream(new FileOutputStream("person.obj"));oout.writeObject(new Person("xukunn",25));oout.close();}/** 讀取硬盤上的對象*/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;//自定義,在修改了成員之后依然”認得“private String name;private int age;public Person(String name,int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return name+":"+ age;}}轉載于:https://www.cnblogs.com/xukunn/p/4082221.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: web app会遇到那些问题
- 下一篇: 如何自动播放光盘、解决win7电脑不能播