- 什麼是變量?
變量用於記錄數值可以改變的數據
計算機技術中變量包括兩部分:
變量名:用於標記一段特定的存儲空間
變量值:以二進制形式保存,且可以被訪問和修改
Java語言中,變量必須先聲明再使用,且必須指明其所屬的數據類型。int age=1;return age; - 常量:常量名稱+常量值
常量值不可以修改,值是固定的
例如: - 變量的分類、聲明和初始化
按所屬數據類型劃分:基本數據類型、引用數據類型
按聲明的位置劃分:局部變量–方法或語句塊內部定義的變量
成員變量—方法外部、類內部定義的變量,也稱屬性或域。
局部變量聲明語法格式:<類型><變量名>[=<缺省值1>][,<變量名2>[=<缺省值2>]…];
Java變量必須先聲明且初始化(賦值)後方可使用
public void m(int a,int b ){
int i;
int j= i+4;//編譯出錯,變量i尚未初始化
int k = a+b;
}
說明:形參屬局部變量,方法調用時會被隱式初始化。
全局變量的聲明需要加訪問修飾符
例:
public class Student(){
private String name;
private int age;
}
- 變量作用域與生存期
作用域—變量的作用範圍:成員變量的作用域與其所屬的作用域相同;局部變量的作用域就是它所在的方法或語句塊
生存週期—變量的生存週期:局部變量生存週期就是所在方法或語句塊單次執行的期間;成員變量的生存期與其所屬的對象相同,隨着對象的創建而創建、隨對象的銷燬而銷燬。
在同一個對象內,全局變量的生命週期要長於局部變量的生命週期
全局變量佔用內存時間要長於局部變量,增加內存佔用,在規定情況下,儘可能少聲明全局變量。
5. 數據存儲細節
計算機的物理內存在操作系統和JVM中使用時分爲堆內存和棧內存兩種方式:
堆內存:由所有的應用程序公用,存儲空間分配不連續,存儲容量大。在堆內存中分配存儲空間和進行存取操作速度較慢。
棧空間:由特定應用程序專用,存儲空間是連續的,以棧的方式(後進先出)進行管理,存儲容量小,但訪問速度塊。
Java程序運行時,局部變量保存在棧內存中,而對象及其成員變量保存在堆內存中。