一、變量

Java中的變量

一、變量存儲的位置

1.1 什麼是變量?

  • 就是用來存儲數據的;html

  • 數據存儲在內存中java

1.2 爲何須要變量?

  • 若是沒有變量,那麼程序運行中會定義許多的數據、直接操做內存地址、編寫難度很高!

1.3變量的定義

變量類型 變量名稱 = 變量值;
eg:
int a = 10;

ps:函數

  • 變量名稱和變量類型中間至少有一個空格(建議一個空格)
  • 賦值符號(運算符)左右能夠沒有空格(建議兩邊加上空格)
  • 每條語句都以英文分號結尾;

1.4變量賦值的過程

int a = 10;
  1. 先執行賦值符號右邊(在堆內存定義一個值10,其有內存地址0X01)
  2. 再執行賦值符號左邊(在棧內存定義一個引用a)
  3. 執行賦值運算(把引用a的數據設置成數據的內存地址0X01)

二、Java變量類型

三、全局變量和局部變量

其思惟導圖大概以下:
code

3.1全局變量(成員變量)

全局變量(成員變量)
全局變量又叫成員變量,它是聲明在類裏,函數,靜態語句塊外的變量,全局變量又分爲類變量(靜態變量)、實例變量兩種.htm

private int i;//實例變量
private static int j;//類變量

實例變量老是經過對象來訪問,由於它們的值在對象和對象之間有所不一樣。而由static修飾的類變量(靜態變量)在類裝載的時候就會被初始化,也就是說一處修改多處改變.對象

3.2局部變量

方法內定義的變量叫局部變量,由於只能在方法內部使用,固不能夠用private,public,protect來修飾。blog

{
int k;//局部變量
}

3.3類變量

類變量:又叫靜態變量 用static修飾 它能夠直接用類名調用 也能夠用對象調用 並且全部對象的同一個類變量都是共享同一塊內存空間的.生命週期

3.4實例變量

實例變量:不用static修飾 它只能經過對象調用 並且全部對象的同一個實例變量是共享不一樣的內存空間的.內存

3.5實例變量和靜態變量的區別

一、兩個變量的生命週期不一樣
實例變量隨着對象的建立而存在,隨着對象的回收而釋放。
靜態變量隨着類的加載而存在,隨着類的消失而消失。get

二、調用方式不一樣
實例變量只能被對象調用。
靜態變量能夠被對象調用,還能夠被類名調用。

三、數據存儲位置不一樣
實例變量存儲在堆內存的對象中,因此也叫對象的特有數據。
靜態變量數據存儲在方法區(共享數據區)的靜態區,因此也叫對象的共享數據。

3.6全局變量和局部變量的區別

全局變量:
一、成員變量定義在類中,在整個類中均可以被訪問。
二、成員變量隨着對象的創建而創建,隨着對象的消失而消失,存在於對象所在的堆內存中。(實例變量);靜態變量存儲在方法區中,Non-Heap
三、成員變量有默認初始化值。

局部變量:
一、局部變量只定義在局部範圍內,如:函數內,語句內等,只在所屬的區域有效。
二、局部變量存在於棧內存中,做用的範圍結束,變量空間會自動釋放。
三、局部變量沒有默認初始化值

static修飾的靜態變量與實例變量的區別,及其在初始化和內存中的運行機制詳解

相關文章
相關標籤/搜索