Java web常用知識點

html:標籤已經定義,數據和表示混合在一起
xml:自己定義標籤,只是表示數據,關於如何顯示沒有定義。


DTD:文檔類型定義,來規範XML文檔。



java 序列化技術



編碼

編碼的原因:
計算機中存儲信息的最小單元是一個字節,即8個bit,所以能表示的字符範圍是0-255
人類要表示的字符太多,無法用一個字節來完全表示
要解決這個矛盾,必須要用一個新的數據結構char,從cha到byte必須編碼
常用的編碼方式:ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16

Unicode(Universal Code 統一編碼)
UTF-16:用兩個字節表示一個字符,java以UTF-16作爲內存的字符存儲格式。




InputeStreamReader類就是關聯字節到字符的橋樑,它負責在I/O過程中處理讀取字節到字符的轉換,而具體字節到字符的解碼實現它又委託StreamDecoder去做,在StreamDecoder解碼過程中必須由用戶指定Charset編碼格式。如果沒有指定Charset,將使用本地環境的默認字符集。

字符流和字節流之間的相互轉化

整個IO包實際上分爲字節流和字符流,但是除了這兩個流之外,還存在一組字節流-字符流的轉換類。
OutputStreamWriter:是Writer的子類,將輸出的字符流變爲字節流,即將一個字符流的輸出對象變爲字節流輸出對象。
InputStreamReader:是Reader的子類,將輸入的字節流變爲字符流,即將一個字節流的輸入對象變爲字符流的輸入對象。
如果以文件操作爲例,則內存中的字符數據需要通過OutputStreamWriter變爲字節流才能保存在文件中,讀取時需要將讀入的字節流通過InputStreamReader變爲字符流。過程如下:
寫入數據-->內存中的字符數據-->字符流-->OutputStreamWriter-->字節流-->網絡傳輸(或文件保存) 讀取數據<--內存中的字符數據<--字符流<--InputStreamReader<--字節流<--網絡傳輸(或文件保存)
可以清楚地發現,不管如何操作,最終全部是以字節的形式保存在文件中或者進行網絡傳輸。

public class encode {     @SuppressWarnings("resource")    public static void main(String[] args) throws Exception {        

String file = "stream";        String charset = "UTF-8";

        FileOutputStream outputStream = new FileOutputStream(file);
        OutputStreamWriter writer = new OutputStreamWriter(outputStream, charset);//字符流轉化爲字節流
        String s = "這是要保存的中文字符";
        writer.write(s);
        writer.close();//必須close
        FileInputStream inputStream = new FileInputStream(file);
        InputStreamReader reader = new InputStreamReader(inputStream);//字節流轉化爲字符流

        StringBuffer buffer = new StringBuffer();        

char[] buf = new char[64];      

 int count = 0;       

while ((count = reader.read(buf)) != -1) {           

buffer.append(buf, 0, count);        }      

  reader.close();       

System.out.println(buffer.toString());    }

}

內存操作中的編碼

String 提供了將字節和字符相互轉化的函數
String s=“這是一段中文字符串”;
byte[] b=s.getBytes(“UTF-8”);
String n=new String(b,”UTF-8)"

前後編碼要一致







javac 編譯原理

javac 任務就是將java語言規範轉化成java虛擬機語言規範,完成翻譯工作。

Servlet 詳解




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章