java中static特殊性和final(static成員直接被訪問,this不能用在static方法中,static不可訪問非static)

來源:互聯網
上載者:User
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+”))
\轉義
^開頭

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.