天天看點

java中變量及方法初始化問題

首先,講一下Java中記憶體配置設定情況

在Java中本人接觸到的資料類型有如下幾種(個人觀點,不是絕對)

  1. 8種基本資料類型
  2. 引用類型
  3. 泛型
  4. 接口
  5. 枚舉
  6. 注解

記憶體配置設定

萬物皆對象,其中對象又分為變量和方法

其中變量有局部變量和成員變量,局部變量分為基本資料類型和引用類型

  • 基本資料類型:放入堆棧中,原因堆棧由Java系統管理,執行效率快僅次于寄存器但限制了靈活性。
  • 引用資料類型:對象放入堆中,引用變量放入堆棧中,堆中存放資料不由Java系統管理,需要額外的程序來管理,速度變慢,但适合存放大資料。

成員變量中的基本資料類型和引用類型都是随着對象存儲的,放入堆中。

初始化

成員變量屬于對象,随着類(其中4,5,6,7都屬于類)加載過程包括了對位元組碼  加載 驗證 準備 解析 初始化等過程。在這個過程中,我們會對我們定義的成員變量進行兩次初始化,一次賦預設初值(0值,boolean賦為false),一次賦我們定義的初值。成員方法亦是如此。

而局部變量放入堆棧中沒有初始化這一過程,是以必須在建立局部變量時就初始化。

繼續閱讀