天天看點

深入了解變量

1、變量的定義:資料類型   變量名   = 值;

2、變量的分類:變量根據在類中定義位置的不同,可以分為兩大類:成員變量和局部變量。

3、成員變量分為類成員變量和執行個體成員變量

     3.1 類成員變量:使用static修飾的成員變量

     3.2 執行個體成員變量: 沒加static修飾的變量就是執行個體成員變量

     注意:在方法當中 不能定義static變量

     3.3 成員變量的特點:

          3.3.1 成員變量預設是有初始值

          3.3.2 變量初始化之後才會在記憶體中開辟存儲空間

          3.3.3 成員變量在整個類中都有效.

          3.3.4 成員變量,可以先使用後定義

  4、局部變量:變量除了成員變量,其他都是局部變量. 局部變量所處的位置1.  方法内部的變量. 2.  方法的參數 3.  代碼塊中的變量

           4.1 局部變量的特點:

                 4.1.1 局部變量沒有預設的初始值,是以必須先初始化才能使用

                 4.1.2 局部變量隻在它定義的大括号内生效

    5、變量的作用域:變量的作用域指的是變量的存在範圍,隻有在這個範圍内,程式代碼才能通路它。當一個變量被定義時,它的作用域就确定了

   6、變量的生命周期:變量的生命周期指的是一個變量被建立并配置設定記憶體空間開始,到該變量被銷毀并清除其所占記憶體空間的過程。 作用域不同,生命周期就不一樣;變量根據定義的位置不同,也決定了各自的作用域是不同的. 看變量所在的那對{}

變量的生命周期

變量 變量在代碼中存放位置 生命周期開始 生命周期結束 記憶體位置
類變量 字段,使用static修飾,類中,方法外 所在位元組碼加載到JVM時 當JVM停止時 方法區
執行個體變量 字段,沒有static修飾,類中,方法外 建立所在類對象時 當對象被GC回收時
局部變量 方法參數,方法内,代碼塊 執行到初始化變量時 所在的方法或代碼塊執行結束

7、變量使用的注意點:

    7.1 局部變量定義後,必須顯示初始化後才能使用,因為系統不會為局部變量執行初始化操作。這就意味着,定義局部變量後,系統并未為這個變量配置設定記憶體空間。 直到程式為這個變量指派時,系統才會為局部變量配置設定記憶體,并将初始值儲存到該記憶體中。

   7.2 局部變量不屬于任何類或執行個體,是以它總是儲存在其所在方法的棧記憶體中。

   7.3 基本資料局部變量:直接把這個變量的值儲存到該變量所對應的記憶體中。 引用資料局部變量:這個變量記憶體中存的是位址,通過該位址引用到該變量實際引用堆裡的的對象。

    7.4 棧記憶體中的變量無需系統垃圾回收,其往往随方法或代碼塊的運作結束而結束。

繼續閱讀