現在業界java代碼的規範比較混亂,阿裏巴巴開發(fā)整理的阿裏巴巴(bā)Java開(kāi)發手冊能夠促使整體行業代碼規範水平得到提高,使Java開發更(gèng)高效、更加容錯、更加具有協作性,提(tí)升協作效率,提高代碼質量,降低代碼維護成本。足球大小球
部分提綱:
一、編程規約
1.如(rú)果使用到了設計(jì)模式,建議在類名中體現出具體模式
將設計模式體現在名字中,有利於閱讀者快速理解架構設計思(sī)想。
2.相同參數類型,相(xiàng)同業務含(hán)義,才可以使用Java的可變參數,避(bì)免使用Object
可變參數必須放置在參數列表(biǎo)的最後,盡量不用可變參數編程。
3.對外暴露的接口簽名,原則上不允許(xǔ)修(xiū)改方法簽名,避免(miǎn)對(duì)接口(kǒu)調用(yòng)方(fāng)產生影響(xiǎng)
接口過時必須加@Deprecated注解,並清晰地說明采用(yòng)的新接口(kǒu)或者新服務是什麽。
4.關於基本數據類型與包(bāo)裝(zhuāng)數據類型的使用標準如下
1)所有(yǒu)的POJO類(lèi)屬性必(bì)須使用包裝數據類型
2)RPC方法的返回值和參數必須使用包裝數據類(lèi)型
3)所有的局部變量【推薦】使用基本數據類型
POJO類屬性沒有初值是醒使用者在需(xū)要使用時,必須自己顯式地進行賦值,任(rèn)何NPE問題,或者入庫檢查,都由使用者(zhě)來保證。數據庫的查詢結果(guǒ)可能是null,因為自動拆箱,用基本(běn)數(shù)據類型接收(shōu)有(yǒu)NPE風險。
5.注意serialVersionUID不(bú)一致會拋出序(xù)列化運行時異常
序列化類新增屬性時,請不要修改serialVersionUID字段,避免(miǎn)反序列失敗;如果完全不兼容(róng)升級,避免反序列化混亂,那麽請(qǐng)修改serialVersionUID值(zhí)。
6.POJO類必須寫toString方法
使用IDE的中工具(jù):source>generatetoString時,如(rú)果繼承了(le)另一個POJO類,注意在前(qián)麵加一下super.toString。在方法執行拋出異常時,可以直接調用POJO的toString()方法打印其屬性(xìng)值,便於排(pái)查問題。
7.final可提高程序響應效率(lǜ),聲明成final的(de)情況:
1)不需要重新賦值的變量,包括類屬性、局部變量
2)對象參數前加final,表示不允許修改引用的指向
3)類方法確定不允許被重寫
8.慎用Object的clone方法來拷貝對象
對象的clone方法(fǎ)默認是淺拷貝(bèi),若(ruò)想實現深拷貝需(xū)要重寫clone方法實現屬性對象的拷(kǎo)貝。
9.類成員與方法訪問控製從嚴
1)如果不允許外部直接(jiē)通過new來創建對象(xiàng),那麽構造(zào)方法必須是private
2)工具類不允許有public或(huò)default構造(zào)方法
3)類非static成(chéng)員變量並且與子類共享,必須是protected4)類非static成員變量並且僅在本類使用,必須是private
5)類static成員變量如果僅在本類使用,必須是private
6)若是static成員變量,必須考慮是否為final
7)類成員方(fāng)法(fǎ)隻供(gòng)類內部調用,必須是private
8)類成員方法隻對繼承類公開,那麽限製為protected
任何類、方法、參數、變量,嚴控訪問範圍(wéi)。過寬泛的訪問範圍,不利於模塊解耦。思考:如果是一個private的方法(fǎ),想刪除就刪(shān)除,可是一個public的Service方法,或者一個public的成員變量,刪除一下,不得手(shǒu)心冒點汗(hàn)嗎?變量像自己的小孩,盡量在自己(jǐ)的(de)視(shì)線內,變量作用域太大,如果無限製的到處跑,那(nà)麽你(nǐ)會擔心的。
10.ArrayList的subList結果(guǒ)不可強(qiáng)轉成ArrayList,否則會拋出ClassCastException異常
subList返回的(de)是ArrayList的內部類SubList,並不是ArrayList,而(ér)是ArrayList的一個視圖,對於SubList子列表的(de)所有操作最(zuì)終會反映到原列表上。

相關介紹:
《阿裏巴巴Java開發手冊》是阿裏巴巴的內部編碼規範,阿裏官方的Java代碼規範標準,手冊以(yǐ)Java應用開發為維度,分為編程規(guī)約、異常日誌(zhì)規約、MYSQL規約、工程規(guī)約(yuē)、安全規約五個章節,給出了強製、推薦、參考三個級別,每條規範都有推薦的約束力度,從命名到項目拆分,不僅規範(fàn)了一(yī)些開(kāi)發細節,也提出了很多工程開發的哲學,值得好好閱讀。
阿裏巴巴集團推出的《阿裏巴巴Java開發手冊(正式版)》是阿(ā)裏巴(bā)巴近萬名開發同學集體智(zhì)慧的結晶,以(yǐ)開發視角(jiǎo)為中心,詳細列舉如何開發更加高效、更加容錯、更加有協作性,力求知其然,更知其不然,結(jié)合正反例,讓Java開發者能夠提升協作效率、提高代碼質量。
阿(ā)裏巴巴Java開發手冊最新版給各位程序猿們帶來下載(zǎi)。
新版改動:
1、增加手冊前言;
2、增加版本曆史;
3、增加(jiā)專有名詞解釋。
bet官方网站 合乐分分彩刷钱 买球为什么老输 十一选五任选 网易娱乐博彩展開

拉針解救小遊戲下(xià)載(zǎi)-拉針解救紅褲衩遊戲1.0.1 安卓版
峽穀(gǔ)電競下載-峽穀電競軟(ruǎn)件1.0.0 手機版
導學幫下(xià)載-導學幫app1.4 最新版
NGA玩家(jiā)社區app下載-NGA玩家(jiā)社區9.9.41 安卓最新版(bǎn)
無盡(jìn)勇士遊戲下載-無盡勇士Infinity Warriors1.3.6 最新安卓版
寬帶我世界客戶(hù)端(聯通356版)2016官網最(zuì)新版
雷(léi)鳥郵件客戶端(Thunderbird)v94.0b5官方正式版
複仇(chóu)之夜殺戮2.0.1破解(jiě)版下載-複仇之夜殺戮2.0.1正黑式破解版【 全(quán)定製英雄密碼+禮(lǐ)包+裝備限製+自主停怪+專(zhuān)用腳本】
幻想領域免費下(xià)載(zǎi)-幻想領域(新浪圖床程序)1.0.0 官方正式版
今天學點啥下載-今天學點啥秘塔(tǎ)ai軟件1.0.0 安卓版
西遊冒(mào)險遊戲下載-西(xī)遊冒險手遊2024最新版1.6.0 安卓版
火瑩地獄少女(nǚ)閻魔愛視頻壁紙下(xià)載-火螢視頻桌麵地獄少女閻魔愛(ài)視頻動態壁紙高清動態版(bǎn)
掌上住建安卓版-掌上住建app1.3.1 最(zuì)新版
和飛信手機客戶端下載-和飛信app7.1.0.0615安卓(zhuó)最新版
代號鳶港服下載-代號鳶港澳服1.0.10 官方最新(xīn)版
死神克勞遊戲下載-死神克勞(Death Crow)1.8.1 最(zuì)新版
校花物語ol蘋果版(bǎn)1.0 ioses正式版
下雪(xuě)唯美傷感(gǎn)圖(tú)片大全-下雪了唯美傷感句子圖片精選無水印版(bǎn)
寶寶兒童動物樂園下載-寶寶兒童動物樂園手機版3.80.21121 最新版
暢(chàng)閱全(quán)本小說下載-暢閱全本小說軟件1.1.9 手機版