亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

深入Java Final

2019-11-26 16:11:42
字體:
來源:轉載
供稿:網友

JAVA關鍵字final用于修飾數據、方法或類,通常意味著“無法改變的”,既數據不能改變,方法不能覆蓋,類不能繼承。一般采用final有兩種原因:設計和效率。而隨著JAVA版本的更新,一些效率上的問題可以交由編譯器和JVM處理。因此,采用final來解決效率問題就顯得不是那么重要了。

Final修飾符大多運用于基本數據類型(primitive)域或者不可變(immutable)類的域(如果類中的所有方法方法都不會改變其對象,這種類就是不可變類。String就是一個不可變類)。

【final數據】

Final關鍵字用修飾數據主要有兩種情況:

1. 編譯期常量

2. 運行時初始化的值

對于編譯期常量,指的是一個既是final又是static的域(依照慣例,編譯期常量全部用大寫字母命名,并且用下劃線分隔各個單詞),它只占據一段不能改變的存儲空間。編譯器可以將編譯期常量代入到任何可能用到它的計算式中,也就是說,可以在編譯時執行計算式,這相對減輕了運行時負擔。編譯期常量在定義時必須對它賦值(不一定是基本類型)。

運行時初始化的值,對于基本類型,final使得其值不可改變;而對于對象引用,final使得引用不可改變,即無法將其改為指向另一個對象,然而,對象本身卻可以修改(適用于數組,數組也是對象)。

復制代碼 代碼如下:

public class javaFinalData{

    private static final String TESTD = "test";
    public static final String TESTE = "test";
    public static final String[] TESTF = {"1","2"}; //非基本類型
    private static final String[] TESTG = new String[2];

    public static void main(String args[]){
        final int testA = 1;
        final String testB = "test";
        final int[] testC = {1,1,2,};
        System.out.println(testC[1]);
        testC[1] = 123;
        System.out.println(testC[1]);
    }
}

【未賦值的final域】

JAVA允許生成未賦值的final域,但是必須在域的定義處或者每個構造器中對final域進行賦值(有多少個構造器就必須賦值幾次),確保在使用前被初始化。采用這種方式,可以使得final運用得更加靈活,在同一個類中,根據不同的對象賦予不同的值,卻又保持不可改變的特性。

復制代碼 代碼如下:

public class javaBlankFinal{
    private final int blank;

    public javaBlankFinal(){
        blank = 2011;
    }

    public javaBlankFinal(int temp){
        blank = 2012;
    }

    public javaBlankFinal(String temp){
        blank = 2014;
    }

    public static void main(String args[]){
        new javaBlankFinal();
    }
}

【final方法】

       使用final方法有兩方面原因:一是將方法鎖定,防止方法被覆蓋,確保在繼承中方法行為保持不變;二是將方法調用轉為內聯調用(inlining),以減少方法調用的開銷。但是,在最近的版本中,JVM可以自行進行優化,因此無需使用final方法來處理效率問題。

       關于final方法,還有一點需要注意,類中所有的private方法都隱式地指定為final方法(也可以為其加上final修飾,但沒有意義)。當你試圖覆蓋一個private方法,編譯器并沒有報錯,但是,實際上你并沒有覆蓋該方法,只是生成了一個新方法。因為private方法是無法被外部類所訪問的,當然就無法覆蓋到它了。

       使用@Override注解可以防止上述問題。如程序所示:

復制代碼 代碼如下:

class finalFunction{
    private void finalFunctionA(){
        System.out.println("finalFunctionA");
    }

    private final void finalFunctionB(){
        System.out.println("finalFunctionB");
    }

    final void finalFunctionC(){
        System.out.println("finalFunctionC");
    }

    void functionD(){}
}

class overrideFinalFunction extends finalFunction{
    //@Override   添加@Override注解可以識別是否是override
    public void finalFunctionA(){              
        System.out.println("override finalFunctionA");
    }

    public final void finalFunctionB(){
        System.out.println("override finalFunctionB");
    }

    //final void finalFunctionC(){}   //Cannot override the final method from finalFunction

    @Override  
    void functionD(){} //真正的override方法
}

public class javaFinalFunction extends finalFunction{
    public static void main(String args[]){
        finalFunction ff = new finalFunction();
        //ff.finalFunctionA();  //無法調用private方法
        //ff.finalFunctionB();

        overrideFinalFunction off = new overrideFinalFunction();
        off.finalFunctionA();   //public方法
        off.finalFunctionB();
    }
}


【final類】

使用final類一般是出于設計原因,不允許該類被繼承。這樣可以保證類的行為不會改變,或許還能避免一些安全危機。Final類中所有的方法都隱式指定為final方法,因此無法被覆蓋(因為final類禁止繼承,也就無法覆蓋其類中的方法)。在Java核心API中,有許多應用final的例子,例如java.lang.String。為String類指定final防止覆蓋length()等方法。

對于final域來說,即使將一個類聲明為final,類中的域不會自動成為final域。

復制代碼 代碼如下:

final class finalClass{
    int testA = 2011;
}
//class extendFinalClassextends finalClass{}  //can not extendthe final class finalClass

public class javaFinalClass{
    public static void main(String args[]){
       finalClass fc = new finalClass();
       System.out.println(fc.testA);
       fc.testA = 2012;
       System.out.println(fc.testA);
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精久久久久久久| 久久精品色欧美aⅴ一区二区| 国产视频精品在线| 麻豆乱码国产一区二区三区| 亚洲黄色片网站| 91最新国产视频| 国产成人亚洲精品| 日韩在线观看你懂的| 国产精品扒开腿做爽爽爽的视频| 粉嫩av一区二区三区免费野| 91丝袜美腿美女视频网站| 91夜夜揉人人捏人人添红杏| 性欧美办公室18xxxxhd| 亚洲精品一区久久久久久| 国产一区二区三区在线视频| 亚洲高清福利视频| 国产亚洲aⅴaaaaaa毛片| 欧美一级片久久久久久久| 欧美一区二区大胆人体摄影专业网站| 浅井舞香一区二区| 性亚洲最疯狂xxxx高清| 国产精品青青在线观看爽香蕉| 亚洲美女性生活视频| 国产成人亚洲综合91精品| 国内精品久久久久久久| 欧美极品xxxx| 国产91露脸中文字幕在线| 欧美天堂在线观看| 岛国av一区二区| 欧美日韩亚洲精品一区二区三区| 韩剧1988在线观看免费完整版| 38少妇精品导航| 热久久美女精品天天吊色| 欧美激情一区二区三区高清视频| 亚洲欧洲日本专区| 中文字幕亚洲图片| 亚洲黄色www| 91精品视频观看| 日韩精品高清在线| 久久视频在线视频| 欧美午夜美女看片| 国产精品影院在线观看| 亚洲精品免费在线视频| 久久手机免费视频| 久久久999精品| 91麻豆桃色免费看| 国产亚洲激情在线| 国产97在线观看| 91精品国产色综合久久不卡98口| 亚洲一二在线观看| 精品国产一区二区在线| 亚洲成人xxx| 欧美大片欧美激情性色a∨久久| 欧美日韩在线观看视频| 久久91超碰青草是什么| 亚洲国产精品久久91精品| 国产视频精品久久久| 日韩欧美第一页| 亚洲一区二区久久| 欧美高清性猛交| 亚洲色图综合网| 亚洲激情视频在线观看| 精品国偷自产在线视频99| 国产97在线|亚洲| 国产精品成人v| 91免费视频国产| 尤物99国产成人精品视频| 精品色蜜蜜精品视频在线观看| 亚洲精品少妇网址| 国产99在线|中文| 日韩中文字幕不卡视频| 在线观看亚洲区| 日本19禁啪啪免费观看www| 亚洲欧美国产高清va在线播| 亚洲视频视频在线| 日韩一区二区av| 精品久久久999| 亚洲午夜精品久久久久久久久久久久| 日韩小视频在线观看| 中文字幕在线看视频国产欧美| 欧美日韩一区二区免费视频| 日韩欧美国产免费播放| 国产亚洲美女久久| 精品视频久久久久久久| 久久成年人视频| 日韩欧美高清视频| 国产精品v日韩精品| 91国语精品自产拍在线观看性色| 国产成人亚洲综合91| 欧美日韩国产色| 欧美性视频精品| 亚洲国产小视频在线观看| 97视频在线观看免费| 亚洲国产精品久久久久秋霞不卡| 4444欧美成人kkkk| 国产精品吊钟奶在线| 精品国产网站地址| 日韩欧美中文在线| 亚洲第一福利视频| 538国产精品一区二区免费视频| 国产aⅴ夜夜欢一区二区三区| 国产亚洲欧美日韩美女| 亚洲一二三在线| 亚洲2020天天堂在线观看| 中文字幕一区二区精品| 亚洲福利视频在线| 国产精品成人v| 亚洲精品美女视频| 日韩精品视频在线免费观看| 国产ts一区二区| 欧美亚洲国产视频小说| 91精品国产91久久久久福利| 国产精品视频在线观看| 欧美丝袜一区二区| 日韩激情在线视频| 国产成人综合亚洲| 国产精品黄色av| 亚洲人成伊人成综合网久久久| 亚洲午夜未满十八勿入免费观看全集| 日本午夜在线亚洲.国产| 亚洲视频第一页| 69视频在线免费观看| 欧美日本在线视频中文字字幕| 成人黄色av网站| 中文字幕亚洲欧美在线| 日韩激情第一页| 国产午夜精品麻豆| 欧美国产高跟鞋裸体秀xxxhd| 欧美精品18videosex性欧美| 国产日韩欧美成人| 最近更新的2019中文字幕| 伊人亚洲福利一区二区三区| 日韩中文字幕在线免费观看| 成人黄色生活片| 亚洲成人在线网| 欧美老女人性生活| 青草热久免费精品视频| 亚洲第一男人天堂| 日本中文字幕久久看| 日本不卡免费高清视频| 国产综合久久久久久| 综合网日日天干夜夜久久| 亚洲国产日韩一区| 久久久女女女女999久久| 日韩成人激情影院| 亚洲国产欧美一区二区三区同亚洲| 欧美插天视频在线播放| 国产精品视频一区国模私拍| 亚洲精品小视频在线观看| 日本伊人精品一区二区三区介绍| 萌白酱国产一区二区| 亚洲精品女av网站| 欧美一级大片在线观看| 亚洲欧美色图片| 欧美大片第1页| 亚洲国产精品va在线观看黑人| 亚洲第一男人天堂| 日韩av网址在线| 91精品综合久久久久久五月天| 久久亚洲精品视频| 国产91精品久| 亚洲国产精品女人久久久| 亚洲最新av网址| 国产成人极品视频|