1. 程式人生 > >Java複習筆記 基礎理論篇

Java複習筆記 基礎理論篇

1. Java是解釋性的語言嗎?
答: java程式的原始碼是解釋性的,但.java檔案要通過2個步驟才能變成機器語言:
1)在java平臺上被編譯成位元組碼(bytecode)的.class形式,這是二進位制的JVM的機器語言。
2)JVM附帶直譯器,對這些位元組碼解釋執行。
PS:Java的.class檔案可以在任何平臺上JVM執行!反之,離開了JVM的環境,.class的二進位制位元組碼無法適用於任何平臺。
PS2:在JDK-11的JRE支援cmd下直接用java xx.java直接執行java檔案,不需要javac編譯再執行
2. 為什麼說Java有分散式的特點
答:java支援Internet應用開發,包含java.net介面,提供了許多web開發的類庫,包括URL,URLConnection,Socket,ServerSocket等等。還有Java RMI支援遠端呼叫Java物件方法。這樣可以在對等的兩端啟用遠端方法,這也可以發生在客戶端和伺服器之間。這些都是分散式應用開發的有利工具。

3.UML是啥?型別分為幾類?
UML就是統一建模語言,分為靜態,動態和物理圖。
靜態圖Static Diagram,描述不發生任何變化軟體元素的邏輯結構。描繪類,物件,資料結構及其中關係。
…其餘的自己查定義去嘿嘿
4. 為什麼要用內部類,非靜態內部類為什麼成員變數不能有static?
答: 外部類只能繼承一次父類/實現一次介面,然而內部類提供了介面和繼承的多重實現!
非靜態內部類的成員變數初始化,就如同非靜態方法與成員變數一樣,依賴於外部類的例項化。JVM分配記憶體時,static類,方法以及成員變數優先分配,然而內部類的static成員變數缺少例項化的內部類無法分配記憶體。
5. 手動實現列舉類需要滿足哪些特點?


答: 列舉類的實現有3個特點:
1) 所有的例項要用public static final來修飾並作為成員屬性儲存,例項名大寫+下劃線組成
2) 構造器用private隱藏
3) 提供一些static方法來供其他程式訪問例項。
6. 列舉類enum的例項化呢,哪些特點?
答: 1)enum和class interface平級,enum繼承的是Enum類
2)所有例項必須放根大括號{}內第一行,用逗號分隔,名稱大寫
3)enum構造器private隱藏
4)enum類無法被繼承,也沒被繼承的意義
5)enum類佔用記憶體是手動列舉類的2倍以上,對Android程式設計敏感