安信java編碼規(guī)范附有答案_第1頁
安信java編碼規(guī)范附有答案_第2頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、安信java編碼規(guī)范復制您的姓名: 填空題 *_您的部門: 單選題 *互聯網研發(fā)團隊交易運營研發(fā)團隊辦公科技研發(fā)團隊數據研發(fā)團隊平臺研發(fā)團隊1. 關于多線程并行處理定時任務的情況,下列哪些說法符合規(guī)范? *推薦使用Timer方式處理;推薦使用ScheduledExecutorService方式處理;(正確答案)Timer運行多個TimeTask時,只要其中之一沒有捕獲拋出的異常,其它任務便會自動終止運行;(正確答案)ScheduledExecutorService并發(fā)運行多個定時任務時,其中某線程拋出異常,不會影響到其它線程的繼續(xù)運行。(正確答案)2. KV結構的集合,在處理null值的存儲上

2、有細微的區(qū)別,下列哪些說法是正確的? *TreeMap的key可以為null;TreeMap的key不可以為null;(正確答案)ConcurrentHashMap的key不可以為null;(正確答案)ConcurrentHashMap的value可以為null。3. 以下關于格式規(guī)約的說法,正確的有哪些? *代碼塊縮進2個空格,如果使用tab縮進,請設置成1個tab為2個空格;(正確答案)代碼塊縮進4個空格,如果使用tab縮進,請設置成1個tab為4個空格;(正確答案)行寬建議為200個字符;不同組的變量之間,不同業(yè)務邏輯的代碼行之間,可以插入一個空行,起邏輯分段的作用。(正確答案)4. 關

3、于異常的處理方式,下列哪些說法是正確的? *為防止obj對象本身空指針異常,書寫代碼時應該注意加異常捕獲處理,例如:try obj.method() catch(NullPointerException e);方法簽名中,拋給調用者的關鍵字為throws;(正確答案)方法內部,拋出異常實例對象為throws;自定義異常,建議繼承RuntimeException。(正確答案)5. hashCode 和 equals 方法的處理,遵循如下哪些規(guī)則? *只要重寫 equals,就必須重寫 hashCode。 而且選取相同的屬性進行運算;(正確答案)只選取真正能決定對象是否一致的屬性,而不是所有屬性,

4、可以改善性能;(正確答案)對不可變對象,可以緩存 hashCode 值改善性能(比如 String 就是例子);(正確答案)類的屬性增加時,及時重新生成 toString,hashCode 和 equals 方法。(正確答案)6. 關于Java代碼的設計和開發(fā)注意事項,下列哪些說法符合? *所有的覆寫方法,必須是強制加 Override;(正確答案)方法的參數名/局部變量名,不與類的成員變量重名 (getter/setter例外);(正確答案)POJO 類中布爾類型的變量名,可以加 is 前綴;枚舉類名建議以 Enum 結尾。(正確答案)7. 下述哪些命名形式的說法是符合規(guī)范的? *為了簡潔A

5、bstractClass或以縮寫為 AbsClass;變量或方法禁用使用拼音或是拼寫縮寫進行命名;(正確答案)類名與接口名使用 UpperCamelCase 風格,遵從駝峰形式;(正確答案)局部變量可以隨意使用 a1,a2,a3 等命名。8. 關于線程池管理線程的好處,下列哪些說法是正確的? *能夠減少在創(chuàng)建和銷毀線程上所花的時間以及系統(tǒng)資源的開銷;(正確答案)使用線程池一定能避免OOM問題;線程資源必須通過線程池提供,不允許在應用中自行顯式創(chuàng)建線程;(正確答案)線程池能夠根據資源等待情況,自動調整線程優(yōu)先級并解決死鎖問題。9. 關于加鎖,下列哪些說法符合規(guī)范? *可以只鎖代碼區(qū)塊的情況下,就

6、不要鎖整個方法體;(正確答案)高并發(fā)的業(yè)務場景下,要考慮加鎖及同步處理帶來的性能損耗,能用無鎖數據結構,就不要用鎖;(正確答案)能用對象鎖的情況下,就不要用類鎖;(正確答案)加鎖時需要保持一致的加鎖順序,否則可能會造成死鎖。(正確答案)10. 寫代碼的注釋,哪些做種法符合規(guī)范定義? *如果命名和邏輯本身就足夠清晰可以自解析,這時就不需要額外的注釋;(正確答案)不要留著IDE自動生成的param,return,throws標記;(正確答案)類、類的公有成員的注釋必須使用javadoc規(guī)范,不得使用/xxx方式;(正確答案)注釋內容必須使用英語,防止發(fā)生亂碼。11. 程序的方法設計上,我們應該盡可

7、能遵從這些約定? *一個方法盡量不要超過120行;(正確答案)超過5行以上的重復的代碼,可以考慮抽取為公用方法;(正確答案)方法的參數最好不要超過3個,最多不要超過7個,太多的可以傳入一個對象;(正確答案)對外提供的開放接口,API一定要有參數校驗。(正確答案)12. 下列哪些做法是正確的? *聲明為private的方法一般只是自己調用,可以忽略參數校驗;(正確答案)從層次設計的角度看,Web/Service/Dao 越前面的層越需要進行參數校驗;(正確答案)可以使用assert進行參數校驗;返回值若有可能為Null,可以使用JDK8的Optional類。(正確答案)13. 關于日志級別的使用

8、,下列哪些說法符合規(guī)范? *info日志盡可能多輸出,方便開發(fā)人員排查問題;如果使用warn來記錄剛上線的業(yè)務行為信息,一定要注意日志的輸出量,避免把硬盤撐爆,并記得及時刪除這些觀察日志;(正確答案)生產環(huán)境禁止輸出debug日志;(正確答案)error級別只記錄系統(tǒng)邏輯出錯、異?;蛑匾腻e誤信息。(正確答案)14. 在設計類的構造方法時,比較合理的做法有? *如果參數很多,組合也很多時,可以使用Builder設計模式;(正確答案)即使仍然用多構造方法時,也建議使用鏈式構造器模式,逐層加入默認值傳遞調用,把實現邏輯寫在最多參數的方法上;(正確答案)將復雜的邏輯抽取到獨立的方法,比如init()

9、,start(),讓使用者顯式調用;(正確答案)構造方法一般習慣生寫在類的所有方法前面,按參數數量升序排序。(正確答案)15. 控制語句的用法,下述哪些說法是錯誤的? *if,else,for,while在遇到只有單條語句時可以不使用大括號;(正確答案)所有if/else/for/while/try的嵌套,一般不要超過4層,不然閱讀有障礙;布爾表達式運算符(&,|)的個數不要超過4個,太復雜的可以先賦值給一個有意義的變量,以提高可讀性;任何情況情況下都不要使用三目運算符。(正確答案)16. 如何正確在使用switch語法? *在一個switch塊內,每個case要么通過break/return

10、等來終止,要么注釋說明程序將繼續(xù)執(zhí)行到哪一個case為止;(正確答案)在一個switch塊內,都必須包含一個default語句并且放在最后,即使它什么代碼也沒有;(正確答案)JDK7以后,switch支持字符串String,但是case標準必須為字符串常量或字面量;(正確答案)在一個switch塊內,default語句可以在任意位置,也可以沒有default語句。17. 關于控制語句,下列哪些說法是合理的? *if-else方式可以通過哨兵語句來減少嵌套層次;(正確答案)盡量減少使用取反的邏輯,大部分情況下,取反邏輯存在對應的正身邏輯寫法;(正確答案)表達式中,能造成短路概率較大的邏輯應盡量放

11、在前面;(正確答案)try-catch盡可能不要放在循環(huán)休內。(正確答案)18. 如何合理地使用異常? *盡量使用JDK標準的Runtime異常如IllegalArgumentException、IllegalStateException;(正確答案)捕獲異常一定要處理;如果故意捕獲并忽略異常,須要注釋寫明原因;(正確答案)必須對資源對象、流對象進行關閉,或使用語法 try-with-resource;(正確答案)如果處理過程中有拋出異常的可能,也要做 try-catch,否則 finally 塊中拋出的異常,將代替 try 塊中拋出的異常。(正確答案)19. 關于數字類型的計算,哪些描述是正確的? *數字運算表達式,因為先進行等式右邊的運算,再賦值給等式左邊的變量,所以等式兩邊的類型要一致;(正確答案)取模做數組下標時,如果不處理負數的情況,很容易ArrayIndexOutOfBoundException;(正確答案)可以用double或float作金融貨幣計算,小精度

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論