- ~
下面關於垃圾收集的描述哪一個是錯誤的?
正確答案: D
A 使用垃圾收集的程序不須要明確釋放對象
B 現代垃圾收集可以處理循環引用問題
C 垃圾收集能提升程序員效率
D 使用垃圾收集的語言沒有內在泄漏問題java
也會有內存泄露問題,例如訪問資源文件,流不關閉,訪問數據庫等鏈接不關閉
java的垃圾收集機制主要針對新生代和老年代的內存進行回收,不一樣的垃圾收集算法針對不一樣的區域。因此java的垃圾收集算法使用的是分代回收。通常java的對象首先進入新生代的Eden區域,當進行GC的時候會回收新生代的區域,新生代通常採用複製收集算法,將活着的對象複製到survivor區域中,若是survivor區域裝在不下,就查看老年代是否有足夠的空間裝下新生代中的對象,若是能裝下就裝下,不然老年代就執行FULL GC回收本身,老年代仍是裝不下,就會拋出OUtOfMemory的異常
下面哪些Java中的流對象是字節流?程序員
正確答案: A B C D
A FileInputStream
B BufferedInputStream
C PushbackInputStream
D ByteArrayInputStream算法
stream結尾都是字節流,reader和writer結尾都是字符流 二者的區別就是讀寫的時候一個是按字節讀寫,一個是按字符。 實際使用一般差很少。 在讀寫文件須要對內容按行處理,好比比較特定字符,處理某一行數據的時候通常會選擇字符流。 只是讀寫文件,和文件內容無關的,通常選擇字節流。
Java主要分爲字節流和字符流以下: 字節流: InputStream |-- FileInputStream (基本文件流) |-- BufferedInputStream |-- DataInputStream |-- ObjectInputStream 字符流 Reader |-- InputStreamReader (byte->char 橋樑) |-- BufferedReader (經常使用) Writer |-- OutputStreamWriter (char->byte 橋樑) |-- BufferedWriter |-- PrintWriter (經常使用)