五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

switch語句能否作用在byte上,能否作用在long上,能否作用在String上?為什么?

2022-06-25 17:08 作者:網(wǎng)星軟件  | 我要投稿

switch能作在byte上,不能作在long上,從Java7開始可以作在String上。

switch語句用于多分支選擇,在使用switch(expr)時,expr只能是一個個枚舉常量(內(nèi)部也是由整形或字符類型實現(xiàn))或一個整數(shù)表達式,其中,整數(shù)表達式可以是基本數(shù)據(jù)類型int或其對應(yīng)的包裝類Integer,當然也包括不同的長度整形,例如short。由于byte,short和char都能夠被隱式地轉(zhuǎn)換為int類型,因此,這些類型以及它們對應(yīng)的包裝類都可以作為switch的表達式。但是,long,float,double及String類型由于不能夠隱式地轉(zhuǎn)換為int類型,因此,它們不能被用作switch的表達式。如果一定要使用long,float或double作為switch的參數(shù),必須將其強制轉(zhuǎn)換為int型才可以。

另外,與switch對應(yīng)的是case語句,case語句之后可以是直接的常量數(shù)值,例如1,2也可以是一個常量計算式,例如1+2等,還可以是final型的變量(final變量必須是編譯時的常量),例如final int a = 0,但不能是變量或帶有變量的表達式,例如i*2等。當然,更不能是浮點型數(shù),例如1.1或者1.2/2等。

隨著Java語言的發(fā)展,在Java7中,switch開始支持String類型了。從本質(zhì)上講,switch對字符串的支持,其實是int類型值的匹配。

它的實現(xiàn)原理如下:通過對case后面的String對象調(diào)用hashCode()方法法,得到一個int類型的Hash值,然后用這個Hash值來唯一標識著這個case。那么當匹配的時候,首先會調(diào)用這個字符串hashCode()方法,獲取一個Hash值(int類型),用這個Hash值來匹配所有的case,如果沒有匹配成功,說明不存在;如果匹配成功了,接著會調(diào)用字符串String.equals()方法進行匹配。

由此可以看出,String變量不能為null,同時,switch的case字句中使用的字符串也不能為null。

switch語句能否作用在byte上,能否作用在long上,能否作用在String上?為什么?的評論 (共 條)

分享到微博請遵守國家法律
七台河市| 南开区| 安福县| 新田县| 林周县| 凯里市| 安宁市| 兴义市| 仁布县| 思南县| 郴州市| 茶陵县| 开封县| 莒南县| 漳浦县| 筠连县| 谷城县| 阜宁县| 濉溪县| 赤壁市| 仙游县| 高密市| 浏阳市| 漳浦县| 南木林县| 大悟县| 马鞍山市| 龙南县| 资溪县| 石狮市| 江门市| 乌兰浩特市| 隆安县| 卫辉市| 济阳县| 香港| 兴宁市| 临漳县| 芦山县| 长子县| 治多县|