java的static關鍵字
java中,static修飾的成員變量和成員方法叫靜態變量和靜態方法,不依賴類特定的實例,被類的所有實例共享。
靜態變量或類變量 和 實例變量,區別是:
靜態變量在內存中只有一個拷貝(節省內存),JVM只分配一次內存,在加載類的過程中完成靜態變量的內存分配,用類名直接訪問,也可以通過對象來訪問(不推薦,盡量不用)。
實例變量在初始化后一個實例時為該實例分配一次內存,多個實例之間的實例變量是獨立的
static的方法和變量可直接用類名訪問;
java中,Static類方法和類變量,先於實例(對象)存在,不用初始化類就可以直接用類名訪問。在類加載時Java虛擬機根據類名在運行時數據區的方法區內找到Static方法。
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+”))
\轉義
^開頭