java的static關鍵字
java中,static修飾的成員變數和成員方法叫靜態變數和靜態方法,不依賴類特定的執行個體,被類的所有執行個體共用。
static的方法和變數可直接用類名訪問;
java中,Static類方法和類變數,先於執行個體(對象)存在,不用初始化類就可以直接用類名訪問。在類載入時Java虛擬機器根據類名在運行時資料區的方法區內找到Static方法。
靜態變數(又稱為類變數) 和 執行個體變數,區別是:
靜態變數在記憶體中只有一個拷貝(節省記憶體),JVM只分配一次記憶體,在載入類的過程中完成靜態變數的記憶體配置,用類名直接存取,也可以通過對象來訪問(不推薦,盡量不用)。 執行個體變數在初始化後一個執行個體時為該執行個體分配一次記憶體,多個執行個體之間的執行個體變數是獨立的
非Static方法可以調用Static方法
執行個體化後的方法,通過對象自身可以引用static方法
Static方法不能調用非靜態成員
但靜態方法不能調用非靜態方法,以及引用非靜態成員變數。因為類未初始化,沒有執行個體,沒有分配記憶體,不能調用。
static方法中不能使用this
在static方法中不能用this來訪問對象。this指標是類對象自身引用,需要類初始化類對象後才能使用,也就是new classA()後才能分配記憶體,才有this。 如果設計類時,static函數必須用到某些類成員,則必須將該成員也定義為static。(記憶體有要求,要考慮記憶體是否夠用)
所以,java類main方法必須是 public static的
類的main方法這樣就可以被外部直接存取,(未住初始化就可以訪問)。並且,不初始化類對象不能訪問類的非static成員。
類未執行個體化(初始化new())時,需要訪問類內建函式,用java反射機制 http://blog.csdn.net/longshenlmj/article/details/10076187 http://blog.csdn.net/longshenlmj/article/details/13295717
java中final關鍵字
1.final的類不允許被繼承。2.final方法不允許被覆蓋。3.final變數只能被賦一次值。
判斷數: if(! parentRegionID.matches(“\d+”))
判斷字串:if(! parentRegionID.matches(“\w+”))
\轉義
^開頭