楊老師課堂之JavaSe部分面試題
Java基礎面試題
-
Java基礎面試題
- 1.簡述 path 和 classpath 的區別
- 2.請說說你對 JVM 的理解
- 3.char 型變數中能不能存貯一箇中文漢字?請說出理由
- 4.簡述 break、continue 和 return 語句的區別。
- 5.請簡述方法重寫和方法過載的區別?
- 6.請簡述 Error 和 Exception 有什麼區別?
- 7.請簡述 synchronized 和 java.util.concurrent.locks.Lock 的異同點
- 8.程式和執行緒之間有什麼不同
- 9.請簡述裝箱和拆箱的概念。
- 10.請簡述 Hashtable 和 HashMap 的區別。
- 11.請簡述使用泛型的優點。
- 12.簡述 TCP/IP 協議的層次結構
1.簡述 path 和 classpath 的區別
-
path:path 環境變數是系統環境變數中的一種,它用於儲存一系列可執行檔案的路徑, 每個路徑之間以分號分隔。當在命令列視窗執行一個可執行檔案時,作業系統首先會在當前 目錄下查詢是否存在該檔案,如果不存在會繼續在 path 環境變數中定義的路徑下去尋找這 個檔案,如果仍未找到,系統會報錯。
-
classpath:classpath 環境變數也是系統環境變數中的一種,它用於儲存一系列類(.class) 檔案的路徑。當 Java 虛擬機器需要執行一個類時,會先在 classpath 環境變數中所定義的路徑 下去尋找所需的 class 檔案。如果 classpath 的路徑最後有分號,則在 classpath 中找不到時, 再到當前路徑查詢;如果最後無分號,則只在 classpath 設定的路徑中查詢。
2.請說說你對 JVM 的理解
JVM 是 JavaVirtual Machine 的縮寫,全稱是 Java 虛擬機器。Java 語言的一個非常重要的 特性就是跨平臺性,而 Java 虛擬機器是實現這一特性的關鍵。不同的作業系統需要使用不同 版本的虛擬機器,這種方式使得 Java 語言能夠“一次編寫,到處執行”。Java 語言編譯程式只 需生成在 Java 虛擬機器上執行的目的碼(位元組碼),就可以在多種平臺上不加修改地執行。 Java 虛擬機器在執行位元組碼時,把位元組碼解釋成具體平臺上的機器指令執行。
3.char 型變數中能不能存貯一箇中文漢字?請說出理由
char 型變數中能不能存貯一箇中文漢字?請說出理由。 char 型變數是用來儲存 Unicode 編碼的字元的, Unicode 編碼字符集中包含了漢字,所以,char 型變數中當然可以儲存漢字啦。不過,如果某個特殊的漢字沒有被包含在 Unicode 編碼 字符集中,那麼,這個 char 型變數中就不能儲存這個特殊漢字。補充說明:Unicode 編碼佔 用兩個位元組,所以 char 型別的變數也是佔用兩個位元組。
4.簡述 break、continue 和 return 語句的區別。
- break 語句:在 switch 條件語句和迴圈語句中都可以使用 break 語句。當它出現在 switch 條件語句中時,作用是終止某個 case 並跳出 switch 結構。當它出現在迴圈語句中,作用是 跳出迴圈語句,執行後面的程式碼
- continue 語句:continue 語句用在迴圈語句中,它的作用是終止本次迴圈,執行下一次循 環。
- return 語句:return 語句可以用於從當前的方法中退出,返回到該呼叫的方法的語句處, 繼續執行。return 返回一個值給呼叫該方法的語句,返回值的資料型別必須與方法的宣告中 的返回值的型別一致。
5.請簡述方法重寫和方法過載的區別?
- 方法重寫(Overriding)和方法過載(Overloading)是 Java 多型性的不同表現。
- 重寫 Overriding 是父類與子類之間多型性的一種表現,過載 Overloading 是一個類中多型性的一 種表現。 如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 (Overriding)。
- 子類的物件使用這個方法時,將呼叫子類中的定義,對它而言,父類中的定義 如同被“遮蔽”了。 如果在同一個類中定義了多個同名的方法,它們或有不同的引數個數或有不同的引數類 型,則稱為方法的過載(Overloading)
6.請簡述 Error 和 Exception 有什麼區別?
- Error 表示恢復不是不可能但很困難的情況下的一種嚴重問題,比如說記憶體溢位,僅靠修 改程式本身是不能處理這樣的情況的。
- Exception 表示程式本身可以處理的錯誤,在開發 Java 程式中進行的異常處理,都是針 對 Excption 類及其子類。在 Exception 類的眾多子類中有一個特殊的 RuntimeException 類, 該類及其子類用於表示執行時異常,除了此類,Exception 類下所有其它的子類都用於表示 編譯時異常。
7.請簡述 synchronized 和 java.util.concurrent.locks.Lock 的異同點
- 相同點:Lock 能完成 synchronized 所實現的所有功能。
- 不同點:總的來說,Lock 更加靈活。Lock 有比 synchronized 更精確的執行緒予以和更好的 效能。synchronized 會自動釋放鎖,但是 Lock 一定要求程式設計師手工釋放,並且必須在 finally 從句中釋放。synchronized 修飾方法時表示同一個物件在不同的執行緒中表現為同步佇列。如 果例項化不同的物件 那麼 synchronized 就不會出現同步效果了。
8.程式和執行緒之間有什麼不同
- 在一個作業系統中,每個獨立執行的程式都可以稱為一個程式,也就是“正在執行的程 序”。而在程式中還可以有多個執行單元同時執行,這些執行單元可以看作程式執行的一條 條線索,被稱為執行緒。
- Java 執行環境是一個包含了不同的類和程式的單一程式。執行緒可以被 稱為輕量級程式。執行緒需要較少的資源來建立和駐留在程式中,並且可以共享程式中的資源。
9.請簡述裝箱和拆箱的概念。
包裝類和基本資料型別在進行轉換時,引入了裝箱和拆箱的概念,其中裝箱是指將基本 資料型別的值轉為引用資料型別,反之,拆箱是指將引用資料型別的物件轉為基本資料型別。
10.請簡述 Hashtable 和 HashMap 的區別。
Hashtable 繼承自 Dictionary 類,而 HashMap 是 Java1.2 引進的 Map 介面的一個實現 HashMap允許將null作為一個entry的key或者value,而Hashtable不允許還有就是, HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。
最大的不同是, Hashtable 的方法是執行緒安全的,而 HashMap 不是,在多個執行緒訪問 Hashtable 時,不需要 自己為它的方法實現同步,而 HashMap 就必須為之提供外同步。
11.請簡述使用泛型的優點。
(1)提高了 Java 程式的型別安全,在編譯時期解決錯誤,避免程式在執行時期發生錯 誤。
(2)消除強制型別轉換。
(3)泛型可以替代 Object 型別的引數和變數的使用,帶來性 能的大幅提高並增加程式碼的可讀性。
12.簡述 TCP/IP 協議的層次結構
TCP/IP 協議的層次結構比較簡單,共分為四層,分別是應用層、傳輸層、網路層和鏈 路層。其中鏈路層是用於定義物理傳輸通道,通常是對某些網路連線裝置的驅動協議,例如 針對光纖、雙絞線提供的驅動。
網路層是整個 TCP/IP 協議的核心,它主要用於將傳輸的數 據進行分組,將分組資料傳送到目標計算機或者網路。運輸層主要使網路程式進行通訊,在 進行網路通訊時,可以採用 TCP 協議,也可以採用 UDP 協議。應用層主要負責應用程式的 協議,例如 HTTP 協議、FTP 協議等。
作者: 楊校
出處: https://blog.csdn.net/kese7952
分享是快樂的,也見證了個人成長曆程,文章大多都是工作經驗總結以及平時學習積累,基於自身認知不足之處在所難免,也請大家指正,共同進步。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出, 如有問題, 可郵件(397583050@qq.com)諮詢。
相關文章
- 楊老師課堂之ArrayList集合解析
- 楊老師課堂之Nginx學習之反向代理Nginx
- JavaSE面試題:反射Java面試題反射
- 辜老師的C++課堂筆記C++筆記
- JavaSE-Java基礎面試題Java面試題
- 【006期】JavaSE面試題(六):泛型Java面試題泛型
- 面試題整理—CSS部分面試題CSS
- 分享JavaScript面試題部分JavaScript面試題
- JavaSE面試題之基本IO流及面試官寫了個雙冒號考試答案[圖]Java面試題
- 面試題總結-Java部分面試題Java
- 面試題總結-Android部分面試題Android
- Java工程師面試題之Dubbo(含答案)Java工程師面試題
- 最乾貨 Go 進階講義搶先披露——毛老師培訓課堂開課了!Go
- 前端常見的部分面試題前端面試題
- 前端常見面試題(js部分)前端面試題JS
- Java開發工程師最新面試題庫系列——集合部分(附答案)Java工程師面試題
- 公眾號-老齊課堂,歡迎關注。
- 3月27課堂測試
- 江民小課堂之防毒引擎防毒
- 好程式設計師web前端培訓分享HTML/CSS部分面試題程式設計師Web前端HTMLCSS面試題
- Java開發工程師最新面試題庫系列——Mybatis框架部分(附答案)Java工程師面試題MyBatis框架
- 自描述C++部分面試題集C++面試題
- python工程師面試題Python工程師面試題
- JavaSE之異常實戰視訊課程Java
- 11月17號課堂測試
- 軟體工程課堂測試九軟體工程
- 好程式設計師web前端教程分享HTML/CSS部分常見面試題程式設計師Web前端HTMLCSS面試題
- 課堂
- Python課堂點名器,媽媽再也不會擔心我被老師點名了Python
- 享學課堂java架構師VIP課程全套完整Java架構
- 208道面試題(JVM部分暫無答案)面試題JVM
- 面試題總結-演算法部分面試題演算法
- iOS底層面試題—OC語法部分iOS面試題
- iOS底層面試題---OC語法部分iOS面試題
- 面試問題記錄 一 (基礎部分)面試
- Python開發面試題及部分答案分享!Python面試題
- 大資料測試技術——課堂測試大資料
- 軟體需求分析 課堂測試二