標識符只能使用ASCII字母和數字,所以每一個有效的標識符名稱都能匹配正則表達式\w+
。html
在Google其它編程語言風格中使用的特殊前綴或後綴,如name_
, mName
, s_name
和kName
,在Java編程風格中都再也不使用。java
包名所有小寫,連續的單詞只是簡單地鏈接起來,不使用下劃線。正則表達式
類名都以UpperCamelCase
風格編寫。編程
類名一般是名詞或名詞短語,接口名稱有時多是形容詞或形容詞短語。如今尚未特定的規則或行之有效的約定來命名註解類型。編程語言
測試類的命名以它要測試的類的名稱開始,以Test
結束。例如,HashTest
或HashIntegrationTest
。post
方法名都以lowerCamelCase
風格編寫。測試
方法名一般是動詞或動詞短語。google
下劃線可能出如今JUnit測試方法名稱中用以分隔名稱的邏輯組件。一個典型的模式是:test<MethodUnderTest>_<state>
,例如testPop_emptyStack
。 並不存在惟一正確的方式來命名測試方法。spa
常量名命名模式爲CONSTANT_CASE
,所有字母大寫,用下劃線分隔單詞。那,到底什麼算是一個常量?pwa
每一個常量都是一個靜態final字段,但不是全部靜態final字段都是常量。在決定一個字段是不是一個常量時, 考慮它是否真的感受像是一個常量。例如,若是任何一個該實例的觀測狀態是可變的,則它幾乎確定不會是一個常量。 只是永遠不打算
改變對象通常是不夠的,它要真的一直不變才能將它示爲常量。
// Constants static final int NUMBER = 5; static final ImmutableList<String> NAMES = ImmutableList.of("Ed", "Ann"); static final Joiner COMMA_JOINER = Joiner.on(','); // because Joiner is immutable static final SomeMutableType[] EMPTY_ARRAY = {}; enum SomeEnum { ENUM_CONSTANT } // Not constants static String nonFinal = "non-final"; final String nonStatic = "non-static"; static final Set<String> mutableCollection = new HashSet<String>(); static final ImmutableSet<SomeMutableType> mutableElements = ImmutableSet.of(mutable); static final Logger logger = Logger.getLogger(MyClass.getName()); static final String[] nonEmptyArray = {"these", "can", "change"};
這些名字一般是名詞或名詞短語。
很是量字段名以lowerCamelCase
風格編寫。
這些名字一般是名詞或名詞短語。
參數名以lowerCamelCase
風格編寫。
參數應該避免用單個字符命名。
局部變量名以lowerCamelCase
風格編寫,比起其它類型的名稱,局部變量名能夠有更爲寬鬆的縮寫。
雖然縮寫更寬鬆,但仍是要避免用單字符進行命名,除了臨時變量和循環變量。
即便局部變量是final和不可改變的,也不該該把它示爲常量,天然也不能用常量的規則去命名它。
類型變量可用如下兩種風格之一進行命名:
駝峯式命名法分大駝峯式命名法(UpperCamelCase
)和小駝峯式命名法(lowerCamelCase
)。 有時,咱們有不僅一種合理的方式將一個英語詞組轉換成駝峯形式,如縮略語或不尋常的結構(例如」IPv6」或」iOS」)。Google指定了如下的轉換方案。
名字從散文形式
(prose form)開始:
示例:
Prose form Correct Incorrect
------------------------------------------------------------------
"XML HTTP request" XmlHttpRequest XMLHTTPRequest
"new customer ID" newCustomerId newCustomerID
"inner stopwatch" innerStopwatch innerStopWatch
"supports IPv6 on iOS?" supportsIpv6OnIos supportsIPv6OnIOS
"YouTube importer" YouTubeImporter
YoutubeImporter*
加星號處表示能夠,但不推薦。
Note:在英語中,某些帶有連字符的單詞形式不惟一。例如:」nonempty」和」non-empty」都是正確的,所以方法名
checkNonempty
和checkNonEmpty
也都是正確的。