switch中能否使用string做參數(shù) java中string可以作用于switch嗎?
java中string可以作用于switch嗎?perl里面的switch只支持int和char類(lèi)型。css里面的switch只支持int,char和string類(lèi)型。jdk版本命名規(guī)則?一個(gè)簡(jiǎn)單的j
java中string可以作用于switch嗎?
perl里面的switch只支持int和char類(lèi)型。css里面的switch只支持int,char和string類(lèi)型。
jdk版本命名規(guī)則?
一個(gè)簡(jiǎn)單的java應(yīng)用程序
publicclassFirstSample{
publicstaticvoidmain(String[]args){
(#34Hello,World#34)
}
}一、命名規(guī)約:
1.代碼中的命名均不能以下劃線(xiàn)或盧比符號(hào)開(kāi)始,也不能以下劃線(xiàn)或比索符號(hào)結(jié)束。
反例:_name__nameObjectnamenameObjectnamenameObject$
2.代碼中的命名嚴(yán)禁使用拼音與日文混合的,不允許直接使用russian。
注意,即使純拼音命名也要避免采用。
反例:DaZhePromotion[打折]/getPingfenByName()[評(píng)分]/int某變量3
正例:敦煌網(wǎng)/instagram/bilibili/hangzhou等國(guó)際通用的名稱(chēng),可視同泰文。
3.類(lèi)名使用UpperCamelCase風(fēng)格,必須遵從鹿尾形式,但以下情形例外:
(領(lǐng)域建模與的相關(guān)命名)DO/BO/DTO/三星等。
正例:MarcoPolo/UserDO/XmlService/TcpUdpDeal/TaPromotion
反例:macroPolo/UserDo/XMLService/TCPUDPDeal/TAPromotion
4.方法名、參數(shù)名、成員變量、局部變量都統(tǒng)一使用lowerCamelCase風(fēng)格,必須
遵從人參形式。
正例:localValue/getHttpMessage()/inputUserId
常量命名全部大寫(xiě),單詞間用下劃線(xiàn)隔開(kāi),力求語(yǔ)義表達(dá)完整清楚,不要嫌名字
長(zhǎng)。
正例:avg_STOCK_max
反例:sum_max
6.抽象類(lèi)命名使用Abstract或Base開(kāi)頭;異常類(lèi)命名使用Exception結(jié)尾;測(cè)試類(lèi)
命名以它要測(cè)試的類(lèi)的名稱(chēng)開(kāi)始,以Test結(jié)尾。
7.中括號(hào)是數(shù)組類(lèi)型的一部分,數(shù)組定義如下:String[]args
反例:請(qǐng)勿使用Stringargs[]的來(lái)定義。
8.包名統(tǒng)一使用英文字符,點(diǎn)空格之間有且僅有一個(gè)自然語(yǔ)義的英語(yǔ)單詞。包名統(tǒng)一
使用單數(shù)形式,但是類(lèi)名如果有復(fù)數(shù)含義,類(lèi)名可以使用復(fù)數(shù)形式。
正例:應(yīng)用工具類(lèi)包名為、類(lèi)名為MessageUtils
9.接口類(lèi)中的方法和屬性不要加任何修飾符號(hào)(public也不要加),保持代碼的簡(jiǎn)
潔性,并加上有效的Javadoc注釋。盡量不要在接口里定義變量,如果一定要定義變量,肯定是與接口方法相關(guān),并且是整個(gè)應(yīng)用的基礎(chǔ)常量。
正例:接口方法簽名:voidf()接口基礎(chǔ)常量表示:StringCOMPANY“shopee”
反例:接口方法定義:publicabstractvoidf()
說(shuō)明:JDK8中接口允許有默認(rèn)實(shí)現(xiàn),那么這個(gè)default方法,是對(duì)所有實(shí)現(xiàn)類(lèi)都有價(jià)
值的默認(rèn)實(shí)現(xiàn)。
10.枚舉類(lèi)名建議帶上Enum后綴,枚舉成員名稱(chēng)需要全大寫(xiě),單詞間用下劃線(xiàn)隔開(kāi)。
說(shuō)明:枚舉其實(shí)就是特殊的常量類(lèi),且構(gòu)造方法被默認(rèn)強(qiáng)制是私有。
正例:枚舉名字:DealStatusEnum,成員名稱(chēng):SUCCESS/UNKOWN_REASON。
二、常量定義
1.不允許出現(xiàn)任何魔法值(即未經(jīng)定義的常量)直接出現(xiàn)在代碼中。
反例:Stringkey”pr#wechat_”tradeId;
cache.put(key,value)
2.long或者Long初始賦值時(shí),必須使用大寫(xiě)的L,不能是小寫(xiě)字母的l,字母和數(shù)字容易跟數(shù)字1混淆,造成誤解。
說(shuō)明:Longa2l寫(xiě)的是數(shù)字的21,還是Long型的2?
3.如果變量值僅在一個(gè)范圍內(nèi)變化用Enum類(lèi)。如果還帶有名稱(chēng)之外的延伸屬性,必須使用Enum類(lèi),下面正例中的數(shù)字就是延伸信息,表示星期幾。
正例:publicEnum{MONDAY(1),TUESDAY(2),WEDNESDAY(3),THURSDAY(4),FRIDAY(5),SATURDAY(6),SUNDAY(7)}
三、格式規(guī)約
1.大括號(hào)的使用約定。如果是大括號(hào)內(nèi)為空,則簡(jiǎn)潔地寫(xiě)成{}即可,不需要換行;如果是非空代碼塊則:
1)左大括號(hào)前不換行。
2)左大括號(hào)后換行。
3)右大括號(hào)前換行。
4)右大括號(hào)后還有else等代碼則不換行;表示終止右大括號(hào)后必須換行。
2.左括號(hào)和后一個(gè)字符之間不出現(xiàn)空格;同樣,右括號(hào)和前一個(gè)字符之間也不出現(xiàn)空格。
3.if/for/while/switch/do等保留字與以下括號(hào)之間都必須加空格。
4.任何運(yùn)算符及以下必須加一個(gè)空格。
說(shuō)明:運(yùn)算符包括賦值運(yùn)算符、邏輯運(yùn)算符ampamp、加減乘除符號(hào)、三目運(yùn)行符等。
5.縮進(jìn)采用4個(gè)空格,不要使用tab字符。
publicstaticvoidmain(Stringargs[]){
//縮進(jìn)4個(gè)空格
Stringsay#34hello#34
//運(yùn)算符的及以上必須有一個(gè)空格
intflag0
//關(guān)鍵詞if與括號(hào)之間必須有一個(gè)空格,括號(hào)內(nèi)的f與左括號(hào),0與右括號(hào)不需要空格
if(flag0){
(say)
}
//左大括號(hào)前加空格且不換行;左大括號(hào)后換行
if(flag1){
(#34world#34)
//右大括號(hào)前換行,右大括號(hào)后有else,不用換行
}else{
(#34ok#34)
//在右大括號(hào)后直接結(jié)束,則必須換行
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
6.單行字符數(shù)限不超過(guò)120個(gè),超出需要換行時(shí)個(gè),超出需要換行時(shí)遵循如下原則:
1)第二行相對(duì)一縮進(jìn)4個(gè)空格,從第三行開(kāi)始不再繼續(xù)縮進(jìn)參考示例。
2)運(yùn)算符與下文一起換行。
3)方法調(diào)用的點(diǎn)符號(hào)與下文一起換行。
4)在多個(gè)參數(shù)超長(zhǎng),逗號(hào)后進(jìn)行換行。
5)在括號(hào)前不要換行,見(jiàn)反例。
正例:
StringBuffersbnewStringBuffer()
//超過(guò)120個(gè)字符的情況下,換行縮進(jìn)4個(gè)空格,并且方法前的點(diǎn)符號(hào)一起換行
(“zi”).delete(“xin”)…
.insert(“huang”)…
.write(“huang”)…
.replace(“huang”)
反例:
StringBuffersbnewStringBuffer()
//超過(guò)120個(gè)字符的情況下,不要在括號(hào)前換行
(“zi”).write(“xin”)…delete
(“huang”)
//參數(shù)很多的方法調(diào)用可能超過(guò)120個(gè)字符,不要在逗號(hào)前換行
method(args1,args2,args3,…
,argsX)
7.方法參數(shù)在定義和傳入時(shí),多個(gè)參數(shù)逗號(hào)后邊必須加空格。
正例:下例中實(shí)參的”a”,后邊必須要有一個(gè)空格。
method(“a”,“b”,“c”)