JAVA每日一旅

葉思維發表於2016-10-19

1.關於final關鍵字

final修飾的成員變數為基本資料型別時,在賦值之後無法改變。當final修飾的成員變數為引用資料型別時,在賦值後其指向地址無法改變,但是物件內容還是可以改變的。

final修飾的成員變數在賦值時可以有三種方式。1、在宣告時直接賦值。2、在構造器中賦值。3、在初始程式碼塊中進行賦值。
2.關於SWING
SWing在不同的作業系統中顯示相同的風格。因為SWING是純JAVA CODE組成。
3.關於AWT
AWT :是通過呼叫作業系統的native方法實現的,所以在Windows系統上的AWT視窗就是Windows的風格,而在Unix系統上的則是XWindow風格。AWT 中的圖形函式與 OS 所提供的圖形函式之間有著一一對應的關係,我們把它稱為peers。 也就是說,當我們利用 awt來構件圖形使用者介面的時候,我們實際上是在利用 OS所提供的圖形庫。
4.關於執行緒中的sleep(),wait()一些問題
sleep()繼承thread類,wait()繼承object類,sleep()不會釋放鎖,而wait()釋放鎖,wait()只能在同步控制方法或同步控制塊中使用,而sleep()可以在任何地方使用;wait()不需要捕獲異常,而sleep()需要捕獲異常。
5.關於類載入器

類的載入是由類載入器完成的,類載入器包括:根載入器( BootStrap )、擴充套件載入器( Extension )、系統載入器( System )和使用者自定義類載入器( java.lang.ClassLoader 的子類)。從 Java 2 ( JDK 1.2 )開始,類載入過程採取了父親委託機制(PDM )。 PDM 更好的保證了 Java 平臺的安全性,在該機制中, JVM 自帶的 Bootstrap 是根載入器,其他的載入器都有且僅有一個父類載入器。類的載入首先請求父類載入器載入,父類載入器無能為力時才由其子類載入器自行載入。 JVM 不會向 Java 程式提供對 Bootstrap 的引用。下面是關於幾個類載入器的說明:

  • Bootstrap :一般用原生程式碼實現,負責載入 JVM 基礎核心類庫( rt.jar );
  • Extension :從 java.ext.dirs 系統屬性所指定的目錄中載入類庫,它的父載入器是 Bootstrap ;
  • system class loader :又叫應用類載入器,其父類是 Extension 。它是應用最廣泛的類載入器。它從環境變數 classpath或者系統屬性 java.class.path 所指定的目錄中記載類,是使用者自定義載入器的預設父載入器。使用者自定義類載入器: java.lang.ClassLoader 的子類 .

相關文章