static int和static final int的區別

static int和static final int的區別

static int和static final int的區別


1.static變量
【static int和static final int的區別】按照是否靜態的對類成員變量進行分類可分兩種:一種是被s來自tatic修飾的變量 , 叫靜態變量或類變量;另一種是沒有被static修飾的變量 , 叫實例變量 。兩者的區別是:
 對于靜態變量在內存中只有一個拷貝(節省內存) , JVM只360問答為靜態分配一次內存 , 在加載類的過程中完成靜態變量的內存分配 , 可用類名直接訪問(方便) , 當然也可以通過對象來訪問(但是這是不推薦的) 。對于實例變量 , 沒創建一個實例以構抗仍 , 就會為實例變量分配一次內存 , 實例變量可以在內存中有多個拷貝 , 互不影響(靈活) 。
2,final變量:
當你在類中定義變量時 , 在其前面加上final關鍵于川卷角擴出士辦就獨字 , 那便是說 , 這個變量移使代座承方一旦被初始化便不可改達數官變 , 這里不可改變的意思對基本類型來說是其值不可變 , 而對于對象變量來說其引用不可再變 。其初始化可商以在兩個地方 , 一是其定義處 , 也就是說在final變量定義時直接給其賦值 , 二是在構造函數中 。這兩個地方只能選其一 , 要么在定義時給值 , 要么在構造函數中給值 , 不能同時既在定義時給了值 , 又在構造函數中給另外的值 。
當函數參數為final類型時 , 非況影你可以讀取使用該參數 , 但是無法改變該參數的值 。
另外方法中的內部類在用到方法中的參變量時 , 此參變也必須聲明為fina歷換體魯夫運海系整l才可使用
3.staticfinalint一般用于常量定義

    猜你喜歡