java視頻學習記錄

一、基礎語法

比特(bit)
只能爲一個值0或1,8比特(bit)是一個字節
字節(byte)
8個bit,但是第一位表示正負號,所以,一字節範圍是-2^7——2^7-1

原碼 反碼 補碼

在計算機內,定點數有3種表示法:原碼、反碼和補碼。
【原碼】二進制定點表示法,即最高位爲符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。
【反碼】表示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
【補碼】表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
計算機數據是用補碼錶示的,正數的補碼就是它的原碼,而負數的補碼是將其原碼(取絕對值後的原碼)取反加1得到的。
  即:負數的二進制 = 正數(該數的絕對值)的二進制反碼 + 1
例如:求-5的補碼是
1. 取絕對值:-5 的絕對值:5
2. 轉二進制:5的二進制:0000 0101
3. 取反碼: 0000 0101 的反碼 1111 1010
4. 加一: 1111 1010 加一 1111 1011
所以,針對一個字節,也就是8位
 最大的是 0111 1111(即127,2^7-1)
 最小的應該是1000 0000,按照上面的解釋,先減一,得到0111 1111,然後按位取反得到1000 0000,該結果爲所求負數的絕對值,所以結果是-128(和概念反着來求出該負數)
java字符采用unicode編碼,每個字符佔兩個字節,因而可以用十六進制表示。java類型轉換,容量小的類型自動轉換爲容量大的數據類型(byte1,short2,char2,int4->long8->float4->double8)

switch case語句

每個case後應該與break連用,否則會穿透到下一個case中,輸出兩個結果。多個case可以合併到一起,用同一個結果(case 1:case 2:case 3:break)。最後default語句應該加上,不推薦省略。

二、面向對象

局部變量在棧內存裏,方法調用完畢就消失;new出來的東西存在堆內存裏;靜態變量、字符串常量存在Datasegment;剩下的代碼就是在代碼區。

子類繼承父類

子類自動擁有父類的所有成員(成員變量及方法),父類的私有變量也會擁有,但是不能在子類中訪問。
子類可以對父類方法進行重寫
- 重寫方法必須擁有和被重寫方法相同的方法名、參數列表、返回類型;
- 不能使用比被重寫方法更嚴格的訪問權限;
- 子類拋出的異常不能超過父類拋出的異常;
繼承中構造方法的規則
- 子類的構造過程中必須調用父類的構造方法;
- 使用this(參數)調用本類的另外的構造方法,如果調用super,必須寫在子類構造方法的第一行;
- 如果子類的構造方法中既沒有顯示的調用父類的構造方法,而父類中又沒有無參的構造方法,則編譯出錯;

異常

受檢查異常
顧名思義,受檢查異常,需要我們用try…catch捕獲處理或者拋出,否則編譯不會通過。例如:IO異常,SQL異常,java規定必須對出現的這些異常進行catch;
運行時異常
當程序中可能出現這類異常時,即使沒有用try…catch捕獲它,還是會編譯通過。java編譯器不會檢查它。例如:我們從來沒有手工處理過NullPointerException異常,Java編譯也能通過。
Error :表示由 JVM 所偵測到的無法預期的錯誤,由於這是屬於 JVM 層次的嚴重錯誤 ,導致 JVM 無法繼續執行,因此,這是不可捕捉到的,無法採取任何恢復的操作,頂多只能顯示錯誤信息。

集合

collection

最基本的集合接口,其子接口Set和list接口。
- set中的數據對象,無序但不可重複; list中的
- 數據對象,有序可以重複;
Collection繼承了接口 Iterable ,當然擁有父接口中的 iterator()方法。
ArrayList , Vector , LinkedList 是 List 的實現類
- ArrayList 是線程不安全的, Vector 是線程安全的,這兩個類底層都是使用數組方式存儲數據,所以索引數據快而插入數據慢
- LinkedList 是線程不安全的,底層是雙向鏈表實現存儲,增刪改較快。(查找按序號索引數據需要進行前向或後向遍歷,較慢)

IO

輸入流、輸出流,都是站在程序的角度上來說的。
比如讀取文件的數據到程序中,站在程序的角度來看,就叫做輸入流。input

直接與數據源相連的流

  • 對文件的讀寫參數是文件名
    FileInputStream/FileOutputStream
    FileReader/FileWriter
  • 以字節數組的形式讀取,可以實現不經文件直接從鍵盤讀取 參數是 byte[]類型
     ByteArrayInputStream ByteArrayOutputStream

套在上面兩個流外面的流

  • 帶緩衝區的流,通常是套在別的流之外。
      BufferedInputStream BufferedOutputStream 參數分別是 InputStream,OutputStream類型
      BufferedReader BufferedWriter 參數分別是 Reader,Writer類型
  • 轉換流,用於將字節流轉換成字符流。
      InputStreamReader OutputStreamWriter 參數分別是 InputStream OutputStream類型
  • 數據流,提供了可以讀取基礎類型的數據的方法。
      DataInputStream DataOutputStream 參數分別是InputStream,OutputStream類型
  • 打印流 (這個流比較特殊,參數很多: File String OutputStream Writer都可以),融合Data和Buffered。
      PrintStream PrintWriter對象流,直接讀取對象類型的數據, 把對象放在流上傳輸。
      ObjectInputStream ObjectOutputStream 參數分別是 InputStream,OutputStream類型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章