1. 程式人生 > >year:2017 month:8 day:3

year:2017 month:8 day:3

執行 創建 類名 堆內存 變量聲明 bsp 容易 根據 變量存儲

2017-08-03

JAVAse

1:靜態變量和成員變量的區別:

所屬不同:靜態變量屬於類,所以也稱為類變量

     成員變量屬於對象,也稱為實例變量

內存中位置不同:靜態變量存儲余方法區的靜態區

        成員變量存儲於堆內存

內存出現時間不同:靜態變量隨著累的加載而加載,隨著累的消失而消失

         成員變量隨著對象的創建而存在,隨著對象的消失而消失

調用不同:靜態變量可以通過類名調用,也可以通過對象調用

     成員變量只能通過對象名調用

2.成員變量和局部變量的區別

在類中位置不同:成員變量:類中方法外

        局部變量:方法內或方法聲明上

在內存中的位置不同:成員變量:堆內存

          局部變量:棧內存

生命周期不同:成員變量:隨著對象的創建而存在,隨著對象的消失而消失

       局部變量:隨著方法調用存在,隨著方法結束消失

初始化值不同:成員變量:有初始默認值

       局部變量:沒有初始默認值

3.類的初始化過程:Student student = new Student ();

        加載Studnet.class文件進內存

        在棧內存為student開辟內存

        對學生對象的成員變量進行默認初始化

        對學生對象的成員變量進行顯示初始化

        通過構造方法對學生對象的成員變量賦值

        學生對象初始化完畢,把對象地址賦值給s變量

4.代碼塊:

局部代碼塊:在方法中出現,限定變量聲明周期,及早釋放,提高內存利用率

靜態代碼塊:在類中方法外出現,並加上static修飾符,用於給類進行初始化,在加載類的時候就調用,並且執行一次

構造代碼塊:在類中方法外出現,多個構造方法中相同的相同的代碼存放在一起,每次調用構造方法時執行一次,並在構造方法前執行

5.匿名對象:沒有名字的對象

作用:對象調用方法 ,僅僅一次的時候;作為實際參數傳遞

6.面向對象基於面向過程:

面向對象的思想:作為一個指揮者,把過程根據不同的功能進行封裝,需要用時進行調用,避免重復,容易修改

面向過程的思想:作為一個參與者,參與每一個過程和步奏並完成它

面向對象的特征:封裝;繼承;多態

7.static:

隨著類的加載而加載

優先於對象存在

被類的所有對象共用(可跨類)

可通過類名調用

         

year:2017 month:8 day:3