欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

常量和枚舉:面試和工作必看

1.魔法值和硬編碼

在代碼編寫的場景中,會遇到提示避免去使用 魔法值(magic numbers)和硬編碼(hardcoding)。

  • 魔法值就是在代碼中直接使用的,沒有提供任何注釋或解釋說明其用途和含義的常數(shù)值。
  • 硬編碼指的是在程序中直接使用特定的值或信息,而不是通過變量、常量或其他可配置的方式來表示。這些值通常是字面量字符串、數(shù)字或其他原始數(shù)據(jù)類型,在代碼中寫死了,無法修改。

缺點:

不便于維護:如果需要修改值,必須手動在代碼中查找并替換,會增加代碼修改的復(fù)雜度和風(fēng)險。

可讀性差:硬編碼的值缺乏描述和注釋,不易于理解和解釋。在工作中,協(xié)作開發(fā),其他開發(fā)人員在閱讀代碼時可能無法理解這些值的含義和作用。

維護困難:當(dāng)需要修改值的時候,需要在代碼中找到所有使用該值的地方進行手動修改。這樣容易出錯,而且增加了代碼維護的復(fù)雜性。

2.定義常量

場景:設(shè)π取小數(shù)點后五位數(shù)(即3.14159)計算圓的面積

Java常量定義是指在Java程序中定義一個不可修改的值,Java常量的定義使用關(guān)鍵字final,一般與static關(guān)鍵字一起使用。

此時可以通過定義一個常量作為π

public class MyClass {  
    //圓周率π
    public static final double PI = 3.14159;  
}

上面這個定義在類中的常量稱為 類常量,可以通過類名訪問。

通過定義常量,就避免在代碼中直接使用沒有明確含義的硬編碼數(shù)字。取而代之,將這些數(shù)字賦值給具有描述性名稱的常量。

3.if - else if - else if - else if.....else

在項目中看過這面這段代碼,通過判斷天氣給出建議

public void handleWeather(String weather) {  
    if (weather.equals("晴天")) {  
        System.out.println("做好防曬");  
    } else if (weather.equals("陰天")) {  
        System.out.println("戶外活動");  
    } else if (weather.equals("小雨")) {  
        System.out.println("帶雨傘");  
    } else if (weather.equals("雷雨")) {  
        System.out.println("避免戶外活動");  
    } else {  
        System.out.println("未知天氣");  
    }  
}

這段代碼的判斷條件 "晴天"、"陰天"、"小雨"等,這些條件在項目不止使用到了一次,比如在另外一個方法中也有一個判斷,但是判斷執(zhí)行的方法體不同,如下

public void handleWeather(String weather) {  
    if (weather.equals("晴天")) {  
        System.out.println("出太陽");  
    } else if (weather.equals("陰天")) {  
        System.out.println("有烏云");  
    }
    ....
}

現(xiàn)在如果需要 把 晴天 這個天氣情況修改為 高溫天,那么就需要修改兩處地方,在實際項目中可能更多。

所以這里必須要定義枚舉提高代碼的可維護性

4.定義枚舉

定義枚舉類如下

public enum WeatherType {  
    SUNNY("晴天"),  
    CLOUDY("陰天"),  
    LIGHT_RAIN("小雨"),  
    THUNDERSTORM("雷雨"),  
    UNKNOWN("未知天氣");  
  
    private final String message;  
  
    WeatherType(String message) {  
        this.message = message;  
    }  
  
    public String getMessage() {  
        return message;  
    }  
}

將代碼用枚舉結(jié)合switch case來替換

public void handleWeather(String weather) {  
    WeatherType weatherType = WeatherType.valueOf(weather);  
    switch (weatherType) {  
        case SUNNY:  
            System.out.println("做好防曬");  
            break;  
        case CLOUDY:  
            System.out.println("戶外活動");    
            break;  
        case LIGHT_RAIN:  
            System.out.println("帶雨傘");    
            break;  
        case THUNDERSTORM:  
            System.out.println("避免戶外活動");   
            break;  
        case UNKNOWN:  
            System.out.println("未知天氣");
            break; 
    }  
}

5.結(jié)語

在日常工作中,會有很多狀態(tài)類型的字段,比如淘寶訂單,狀態(tài)可以為:待付款、待發(fā)貨、已發(fā)貨、已簽收、交易成功等,真實場景狀態(tài)可能更多。

而狀態(tài)也會被很多代碼給使用到,所以必須通過集中統(tǒng)一的方式來定義。

通過常量、枚舉,可以很好的解決問題,一旦狀態(tài)有新增、修改、刪除都只需要修改一處地方,其它代碼直接引用就行。

#面經(jīng)##我的求職思考#
全部評論
點贊 回復(fù) 分享
發(fā)布于 2023-09-21 19:28 北京

相關(guān)推薦

04-14 20:10
已編輯
門頭溝學(xué)院 Java
點贊 評論 收藏
分享
海螺很能干:每次看到這種簡歷都沒工作我就覺得離譜
點贊 評論 收藏
分享
評論
1
收藏
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
??推髽I(yè)服務(wù)