qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          詳解Java中staitc關(guān)鍵字

           一、static定義
            static是靜態(tài)修飾符意思,什么叫靜態(tài)修飾符呢?大家都知道,在程序中任何變量或者代碼都是在編譯時(shí)由系統(tǒng)自動(dòng)分配內(nèi)存來(lái)存儲(chǔ)的,而所謂靜態(tài)就是指在編譯后所分配的內(nèi)存會(huì)一直存在,直到程序退出內(nèi)存才會(huì)釋放這個(gè)空間,也就是只要程序在運(yùn)行,那么這塊內(nèi)存就會(huì)一直存在。這樣做有什么意義呢?
            在Java程序里面,萬(wàn)物皆對(duì)象,而對(duì)象的抽象就是類,對(duì)于一個(gè)類而言,如果要使用他的成員,那么普通情況下必須先實(shí)例化對(duì)象后,通過(guò)對(duì)象的引用才能夠訪問(wèn)這些成員,但是有種情況例外,就是該成員是用static聲明的。
            static聲明的靜態(tài)變量可以直接通過(guò)類名調(diào)用!
          1 class Demo{
          2     public static void main(String[] args)
          3     {
          4         Person p = new Person();
          5         System.out.println(p.country);        //1、新建對(duì)象調(diào)用
          6         System.out.println(Person.country); //2、通過(guò)類名直接調(diào)用
          7     }
          8 }
          9 class Person{
          10     static String country = "china";
          11 }
            二、static特點(diǎn)
            由此我們得出static的特點(diǎn)。
            a、static是一個(gè)修飾符,用于修飾成員。
            b、static修飾的成員被所有的對(duì)象共享。
            c、static優(yōu)先于對(duì)象存在,static成員隨著類的加載就已經(jīng)存在。
            d、static修飾成員多一種調(diào)用方式--通過(guò)類名調(diào)用。
            三、成員變量和靜態(tài)變量區(qū)別?
            1.兩個(gè)變量的生命周期同
            成員變量隨對(duì)象創(chuàng)建存在,隨對(duì)象回收而釋放。
            靜態(tài)變量隨類的加載而存在,同樣也隨著類而消失。
            2、調(diào)用方式
            成員變量只能被對(duì)象調(diào)用。
            靜態(tài)變量能被對(duì)象調(diào)用,還可以被類名調(diào)用。
            3、內(nèi)存中存儲(chǔ)位置不同。
            成員變量存儲(chǔ)在堆內(nèi)存中。
            靜態(tài)變量存儲(chǔ)在方法區(qū)(共享數(shù)據(jù)區(qū))的靜態(tài)區(qū)。
            四、靜態(tài)使用注意事項(xiàng)
            1、靜態(tài)方法只能訪問(wèn)靜態(tài)成員。
            2、靜態(tài)方法中不可以用this或super關(guān)鍵字。
            3、主函數(shù)都是靜態(tài)的。
          class Demo{
          public static void main(String[] args)
          {
          Person.show();
          }
          }
          class Person{
          static String country = "china";
          String name = "jinfulin";
          public static void show()
          {
          System.out.print(country);    //正確
          //System.out.print(name);    //錯(cuò)誤
          }
          }

          posted on 2014-11-14 10:02 順其自然EVO 閱讀(351) 評(píng)論(1)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄

          評(píng)論

          # re: 詳解Java中staitc關(guān)鍵字 2014-11-19 20:53 faker

          寫得很棒啊!謝謝!  回復(fù)  更多評(píng)論   

          <2014年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 永登县| 罗田县| 广昌县| 马关县| 原平市| 保亭| 平顺县| 望城县| 临漳县| 如皋市| 大悟县| 南华县| 渭南市| 达拉特旗| 温宿县| 通化市| 汤原县| 天台县| 鱼台县| 新邵县| 蛟河市| 杭锦旗| 囊谦县| 页游| 思南县| 邹城市| 偏关县| 康定县| 嘉荫县| 滦平县| 兴安县| 兴隆县| 弋阳县| 宽甸| 大埔县| 克拉玛依市| 子洲县| 阿克陶县| 文水县| 濉溪县| 洪泽县|