第六課 面向對象編程(四)

1.類的初始化過程:

     類的靜態成員在類被加載的時候進行初始化!!

     數據成員初始化過程:

            1)在堆中分配空間

             2)給對性的屬性賦默認值

                    boolean=false

                    基本類型=0

                    引用類型=null

              3)調用構造器

              4)進一步賦值

  2.main方法的執行過程

                 main中代碼:

                 Student stu=new Student();

                 stu.study();

         1).先到方法區搜索Studentclass對象(此對象它描述了Student類的方法特

        徵及靜態成員等),如果搜索不到則去加載Student的字節碼文件;

         2).通過classpath查找對應的Student字節碼文件,找不到就返回錯誤:

        類找不到;

         3).將字節碼文件的二進制數據轉換爲class對象放置於方法區,加載完成;

         4).驗證字節碼文件;

         5).在堆區劃分空間,放置Student對象;

         6).在棧(stack)區放置引用類型變量stustu指向的Student對象的地址;

         7)Student對象存放class對象的地址;

         8).通過stu引用類型變量的值找到Student對象,通過Student對象存放

        class對象的地址找到對應的study方法,然後執行;

         9).釋放資源,JVM運行結束。

3.變量的作用域:

    定義:變量生存的時間。

(1)變量的分類:

  類的成員變量

①類的靜態成員變量

    ExampleStudent類的帶static修飾的屬性

    類的靜態成員變量的生命週期:

        從類加載開始,到類被卸載結束。靜態成員初始化以後放在方法區。

②類的實例成員變量

Student類的不帶static修飾的屬性。

變量初始化以後放在堆區。

實例變量的生命週期:

  A.從對象生成開始,到對象被回收時結束。

B.類的實例成員變量在對象初始化的時候,會賦默認值。

          基本類型number type0Booleanfalsecharacter type '/u0000'

          引用類型:null,如String

C.先按照B的規則賦給一個初始值,然後構造器的賦值過程會覆蓋掉初始值。

 

          (2)局部變量

    Definition:局部變量是方法或代碼塊中定義的變量。

     JVM中的某個線程調用方法的時候,將局部變量壓入棧區開始,方法調用結束,(

           局部變量從棧區(stack)彈出結束。

           局部變量在使用前必須要賦值。

 3)方法的參數

            例如:for(int i=0;i<10;i++)add(int i1int i2)

 4)異常的參數

        例如:try...catch(Exception e)

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章