1. 程式人生 > >[java知識點筆記合集]牛客網錯題集

[java知識點筆記合集]牛客網錯題集

1.Java和C++的區別:

1. Java是解釋型語言,所謂的解釋型語言,就是原始碼會先經過一次編譯,成為中間碼,中間碼再被直譯器解釋成機器碼。對於Java而言,中間碼就是位元組碼(.class),而直譯器在JVM中內建了。

2. C++是編譯型語言,所謂編譯型語言,就是原始碼一次編譯,直接在編譯的過程中連結了,形成了機器碼。

3. C++比Java執行速度快,但是Java可以利用JVM跨平臺。

4. Java是純面向物件的語言,所有程式碼(包括函式、變數)都必須在類中定義。而C++中還有面向過程的東西,比如是全域性變數和全域性函式。

5. C++中有指標,Java中沒有,但是有引用。

6. C++支援多繼承,Java中類都是單繼承的。但是繼承都有傳遞性,同時Java中的介面是多繼承,類對介面的實現也是多實現。

7. C++中,開發需要自己去管理記憶體,但是Java中JVM有自己的GC機制,雖然有自己的GC機制,但是也會出現OOM和記憶體洩漏的問題。C++中有解構函式,Java中Object的finalize方法

8. C++運算子可以過載,但是Java中不可以。同時C++中支援強制自動轉型,Java中不行,會出現ClassCastException(型別不匹配)。

2.下面的類哪些可以處理Unicode字元?

InputStreamReader
BufferedReader
Writer
PipedInputStream

簡單地說,字元流是位元組流根據位元組流所要求的編碼集解析獲得的

可以理解為字元流=位元組流+編碼集

所以本題中和字元流有關的類都擁有操作編碼集(unicode)的能力。

字元流=位元組流+編碼集

位元組流繼承於InputStream OutputStream,字元流繼承於InputStreamReader OutputStreamWriter

3.連結:https://www.nowcoder.com/questionTerminal/779a8f85397b46dcb98e3ccf299f331f
來源:牛客網
 

下列說法正確的有( )

  •  

這道題考察的是字元流跟位元組流的類吧。

字尾是Stream的都是位元組流,其他的都是字元流。

 

[不定項選擇題]

下列說法正確的有( )

  • 環境變數可在編譯source code時指定
  • 在編譯程式時,所能指定的環境變數不包括class path
  • javac一次可同時編譯數個Java原始檔
  • javac.exe能指定編譯結果要置於哪個目錄(directory)
  • 編譯 多個。java 檔案

 

連結:https://www.nowcoder.com/questionTerminal/779a8f85397b46dcb98e3ccf299f331f
來源:牛客網
 

在Java中,環境變數可在編譯source code時指定

在編譯程式時,所能指定的環境變數包括class path

javac一次可同時編譯數個Java原始檔

javac.exe能指定編譯結果要置於哪個目錄(directory)