java加強知識總結 java面試 java學習節點(2)

java加強    接續上一節java基礎      不足大家請指出(謝謝)

1.Object類

      1).Object類是所有類的父類,位於java.lang包中。

      2).數組也是Object類的子類。

     方法:

           toString()equals()hashCode()等方法

2.異常

      各位朋友不管在自己寫代碼,還是在敲項目的時候我們總會遇到不同的異常,今天我給大家介紹一下常見的異常不足希望大家指出。

  異常指:程序在執行過程中,出現非正常情況,jvm非正常停止。

                在java語言中,異常本身就是一個類,產生異常就是創建異常對象並拋出一個異常對象。java處理異常的方式是中斷處理。

異常體系

       異常的根類是java.lang.Throwable,兩個子類:java.lang.Errorjava.lang.Exception,平常所說的異常指java.lang.Exception

  • Error: 嚴重錯誤Error,無法通過處理的錯誤,只能實現避免,好比絕症。
  • Exception: 表示異常,異常產生後程序員可以通過代碼的方式糾正,使程序繼續運行,是必須要處理的。

2種處理異常的方法

    1)拋

          


import java.io.*;
public class className
{
  public void deposit(double amount) throws RemoteException
  {
    // Method implementation
    throw new RemoteException();
  }
  //Remainder of class definition
}

   2)try--catch

   

try
{
   // 程序代碼
}catch(ExceptionName e1)
{
   //Catch 塊
}

  3)finally關鍵字

  

finally 關鍵字用來創建在 try 代碼塊後面執行的代碼塊。

無論是否發生異常,finally 代碼塊中的代碼總會被執行。

在 finally 代碼塊中,可以運行清理類型等收尾善後性質的語句。

finally 代碼塊出現在 catch 代碼塊最後,語法如下:
try{
  // 程序代碼
}catch(異常類型1 異常的變量名1){
  // 程序代碼
}catch(異常類型2 異常的變量名2){
  // 程序代碼
}finally{
  // 程序代碼
}

  常見異常:

    算術異常類:ArithmeticExecption

    空指針異常類:NullPointerException

    類型強制轉換異常:ClassCastException

    數組負下標異常:NegativeArrayException

    數組下標越界異常:ArrayIndexOutOfBoundsException

    違背安全原則異常:SecturityException

    文件已結束異常:EOFException

    文件未找到異常:FileNotFoundException

    字符串轉換爲數字異常:NumberFormatException

     等等等。。。

    建議大家在項目報異常的時候希望各位不要抵制它,程序員就是改bug寫bug,寫bug改bug。

    1)大家遇到問題耐心查找問題解決問題。

    2)採用debug方式System方式這樣找問題速度成倍提高

 3.io流

   概念:流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的總稱或抽象。即數據在兩設備間的傳輸稱爲流,流的本質是數據傳輸,根據數據傳輸特性將流抽象爲各種類,方便更直觀的進行數據操作。

   流的分類:

        根據處理數據類型分爲:字節流和字符流

        根據數據流向分爲:輸入流和輸出流

  字節流和字符流

       字符流的由來: 因爲數據編碼的不同,而有了對字符進行高效操作的流對象。本質其實就是基於字節流讀取時,去查了指定的碼錶。字節流和字符流的區別:

     (1)讀寫單位不同:字節流以字節(8bit)爲單位,字符流以字符爲單位,根據碼錶映射字符,一次可能讀多個字節。

     (2)處理對象不同:字節流能處理所有類型的數據(如圖片、avi等),而字符流只能處理字符類型的數據。

     (3)字節流在操作的時候本身是不會用到緩衝區的,是文件本身的直接操作的;而字符流在操作的時候下後是會用到緩衝區的,是通過緩衝區來操作文件,我們將在下面驗證這一點。

        結論:優先選用字節流。首先因爲硬盤上的所有文件都是以字節的形式進行傳輸或者保存的,包括圖片等內容。但是字符只是在內存中才會形成的,所以在開發中,字節流使用廣泛。

   java流類圖結構

     

 在企業項目中使用的流大多爲字節流,字節流的使用範圍廣泛基本可以處理99%讀寫的操作。 

  字節輸出流:OutPutStream

      是表示字節輸出流的所有類的父類,將指定的字節信息寫出到目的地。

      public void close() :關閉此輸出流並釋放與此流相關聯的任何系統資源。
      public void flush() :刷新此輸出流並強制任何緩衝的輸出字節被寫出。
      public void write(byte[] b) :將 b.length字節從指定的字節數組寫入此輸出流。
      public void write(byte[] b, int off, int len) :從指定的字節數組寫入 len字節,從偏移量 off開始輸出到此輸出流。
      public abstract void write(int b) :將指定的字節輸出流。

文件輸出流,將數據寫出到文件   FileOutputStream

  構造方法:
      public FileOutputStream(File file) :創建文件輸出流以寫入由指定的 File對象表示的文件。
      public FileOutputStream(String name) : 創建文件輸出流以指定的名稱寫入文件。
  寫出字節數據
  寫字節 write(int b) 方法,每次可以寫出一個字節數據
  寫出字節數組: write(byte[] b) ,每次可以寫出數組中的數據
  寫出指定長度字節數組: write(byte[] b, int off, int len) ,每次寫出從off索引開始,len個字節
  數據的追加續寫
     public FileOutputStream(File file, boolean append) : 創建文件輸出流以寫入由指定的 File對象表示的文件
     public FileOutputStream(String name, boolean append) : 創建文件輸出流以指定的名稱寫入文件
  換行 fos.write("\r\n".getBytes());

字節輸入流 InputStream
     是表示字節輸入流的所有類的父類,可以讀取字節信息到內存

     public void close() :關閉此輸入流並釋放與此流相關聯的任何系統資源
     public abstract int read() : 從輸入流讀取數據的下一個字節。
     public int read(byte[] b) : 從輸入流中讀取一些字節數,並將它們存儲到字節數組 b中


文件輸入流,從文件中讀取字節  FileInputStream

  構造方法
     FileInputStream(File file) : 通過打開與實際文件的連接來創建一個 FileInputStream ,該文件由文件系統中的 File對象 file命名。
     FileInputStream(String name) : 通過打開與實際文件的連接來創建一個 FileInputStream ,該文件由文件系統中的路徑名 name命名。
  讀取字節數據
     讀取字節: read 方法,每次可以讀取一個字節的數據,提升爲int類型,讀取到文件末尾,返回 -1
     使用字節數組讀取: read(byte[] b) ,每次讀取b的長度個字節到數組中,返回讀取到的有效字節個數,讀取到末尾時,返回 -1
     使用數組讀取,每次讀取多個字節,減少了系統間的IO操作次數,從而提高了讀寫的效率,建議開發中使用。
 

 

   文章地址https://blog.csdn.net/wjl31802/article/details/87975514#day08File_95

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