国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

java中final, finally, finalize的區(qū)_別

2019-11-02 14:47:34
字體:
供稿:網(wǎng)友

   final—修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個(gè)類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。

  final變量定義: 變量一經(jīng)初始化就不能指向其它對象。指向的存儲(chǔ)地址不可修改,但指向的對象本身是可以修改的。

  先說final變量初始化:

  很多文章都這么說:其初始化可以在兩個(gè)地方,一是其定義處,二是在構(gòu)造函數(shù)中,兩者只能選其一。

  胡說八道!

  final變量可以在任何可以被始化的地方被始化,但只能被初始化一次.一旦被初始化后就不能再次賦

  值(重新指向其它對象),作為成員變量一定要顯式初始化,而作為臨時(shí)變量則可以只定義不初始化(當(dāng)然也不能引用)

  即使是作為一個(gè)類中的成員變量,也還可以在初始化塊中初始化,所以"其初始化可以在兩個(gè)地方,一是其定義處,

  二是在構(gòu)造函數(shù)中,兩者只能選其一"是錯(cuò)誤的.

  作為成員變量時(shí),final字段可以設(shè)計(jì)不變類,是不變類的一個(gè)必要條件但不是一個(gè)充要條件.至少可以保證字段不

  會(huì)以setXXX()這樣的方式來改變.但無法保證字段本身不被修改(除非字段本身也是不變類);

  對于方法參數(shù)的final變量:

  對于方法參數(shù)的變量定義為final,90%以上的文章都說"當(dāng)你在方法中不需要改變作為參數(shù)的對象變量時(shí),明確使

  用final進(jìn)行聲明,會(huì)防止你無意的修改而影響到調(diào)用方法外的變量。"

  胡說八道!

  我不知道這個(gè)修改是說重新賦值還是修改對象本身,但無論是哪種情況,上面的說法都是錯(cuò)誤的.

  如果是說重新賦值,那么:

代碼如下  

public static void test(int[] x){
x = new int[]{1,2,3};
}

int[] out = new int[]{4,5,6};
test(out);
System.out.println(out[0]);
System.out.println(out[1]);
System.out.println(out[2]);

  調(diào)用test(out);無論如何也不會(huì)影響到外面變量out.你加不加final根本沒有意義.final只會(huì)強(qiáng)迫方法內(nèi)

  多聲明一個(gè)變量名而已,即把x = new int[]{1,2,3};改成int y = new int[]{1,2,3}; 其它沒有任何實(shí)際意義.

  如果說是修改對象本身:

代碼如下   public static void test(final int[] x){
x[0] = 100;
}
int[] out = new int[]{4,5,6};
test(out);
System.out.println(out[0]);

  難道你用final修飾就不可以修改了?所以說對于方法參數(shù)中final是為了不影響調(diào)用方法外的變量那是胡說八道的.

  那我們到底為什么要對參數(shù)加上final?其實(shí)對方法參數(shù)加final和方法內(nèi)變量加上final的作用是相同的,即為了將它們

  傳給內(nèi)部類回調(diào)方法:

代碼如下  
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 奉化市| 海安县| 鱼台县| 澄迈县| 海城市| 安远县| 绥江县| 湖口县| 岑巩县| 绍兴市| 绵阳市| 万宁市| 南江县| 方山县| 莱阳市| 雷州市| 安岳县| 辉县市| 嘉祥县| 洪洞县| 竹北市| 山丹县| 娱乐| 疏附县| 华阴市| 白水县| 阿荣旗| 修水县| 公安县| 城市| 溧水县| 湖北省| 曲松县| 六枝特区| 航空| 荣昌县| 丰城市| 天水市| 龙川县| 石渠县| 呼图壁县|