摘要:前言作為一名全干打字員,干活時經常會被要求使用各種各樣的語言去實現各種各樣的需求,來回切換起來寫的代碼就會或多或少有點不規范。今天我們以為例,講講在代碼中,我們需要注意的某些規范。
前言
作為一名全干打字員,干活時經常會被要求使用各種各樣的語言去實現各種各樣的需求,來回切換起來寫的代碼就會或多或少有點不規范。今天我們以JAVA為例,講講在代碼中,我們需要注意的某些規范。(本文標準依賴于阿里巴巴的JAVA開發代碼規范)
示例以下舉出本猿在工作中常常出現的問題,包括但不僅限于:
邏輯判斷語句
在 if/else/for/while/do 語句中必須使用大括號,即使只有一行代碼,避免使用下面的形式:
if(condition) statements;
屬性copy
很多童鞋喜歡使用 Apache Beanutils 進行屬性的copy, Apache BeanUtils 性能較差,我們應該盡量避免使用,可以使用其他方案比如 Spring BeanUtils , Cglib BeanCopier 。
TestObject a = new TestObject(); TestObject b = new TestObject(); a.setX(b.getX()); a.setY(b.getY());
覆寫方法
所有的覆寫方法,都必須要加上 @Override 注解。
類方法命名
方法名、參數名、成員變量、局部變量都應該統一使用 lowerCamelCase ,類名使用 UpperCamelCase 風格,遵從駝峰命名的標準,盡量避免如 _ -等字符連接,但以下情形例外:(領域模型的相關命名)DO / BO / DTO / VO / DAO。另外,類都應該加上創建者的信息,方法名也應該加上對應的參數及用途說明。
常量命名應該全部大寫,但此間使用下劃線隔開,力求語義表達完整清楚,不要嫌名字長。
Random實例
首先 Random 示例包括 java.util.Random 或者 Math.random(),我們應該避免其被多線程使用,雖然共享該實例是線程安全的,但會因競爭統一 seed 導致性能下降。
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("demo-pool-%d").build(); ExecutorService singleThreadPool = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); singleThreadPool.execute(()-> System.out.println(Thread.currentThread().getName())); singleThreadPool.shutdown();
+字符串拼接
在循環體內,我們應當使用 StringBuilder 的 append 方法進行字符串的連接。
反例: String result; for (String string : tagNameList) { result = result + string; } 正例: StringBuilder stringBuilder = new StringBuilder(); for (String string : tagNameList) { stringBuilder.append(string); } String result = stringBuilder.toString();
equals判斷
很多人喜歡使用下面的代碼進行 equals 判斷是否為某個值:
public static final String type = "FOOD"; if(Object.equals(type)){ //do something }
對象中的equals很容易拋空指針異常,所以我們應該盡量使用常量或者確定有值的對象來調用equals。
public void f(String str){ String inner = "hi"; if(inner.equals(str)){ System.out.println("hello world"); } }
集合初始化
我們往往在集合初始化的時候忘記指定集合的初始值大小,在高并發的情況下,這樣很可能會造成內存的使用不當引起一系列的問題。所以在使用諸如 HashMap 的時候盡量指定初始值的大小。
反例: Mapmap = new HashMap (); 正例: Map map = new HashMap (16);
注釋
方法內部應當使用單行注釋,在被注釋語句的上方另起一行,使用 // 進行注釋,多行注釋則使用 /* */ ,強迫癥下應注意與代碼對齊。
public void method() { // Put single line comment above code. (Note: align "http://" comment with code) int a = 3; /** * Some description about follow code. (Note: align "/**" comment with code) */ int b = 4; }
Switch語句
在每一個switch塊內,每一個case都必須通過 break/return 來終止或者是注釋說明程序繼續執行到某一個case為止,并且都應該包含一個 default 語句放在最后,即便沒有代碼。
switch( x ){ case 1 : break ; case 2 : break ; default : }結語
雖然我們往往寫出的代碼可能不是很高效、簡潔,但是我們一定注意代碼的可讀性,畢竟代碼除了機器看之外,也是給人看的。
福利送福利送福利啦,本猿最近獲得了三張 5QB 的抵用卷,本著蚊子再小也是肉的原則,把它送給在公眾號上留言的前三位童鞋,留言的前三位童鞋看到后記得在后臺留下QQ號聯系打字員大大領取福利喲~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70807.html
摘要:此處指定的虛擬機與平臺兼容,并支持語言規范中指定的編程語言。第章說明了虛擬機的指令集,按字母順序顯示操作碼助記符。 介紹 一點歷史 Java?編程語言是一種通用的、并發的、面向對象的語言,它的語法類似于C和C++,但它省略了許多使C和C++復雜、混亂和不安全的特性。最初開發Java平臺是為了解決為聯網的消費者設備構建軟件的問題,它旨在支持多種主機架構,并允許安全交付軟件組件,為了滿足這...
摘要:今日份重點命名規范注釋關鍵字關鍵字總結命名規范規范的包名名字管理是所有編程語言都必須重視的一個問題。比如說百度,其域名為,那么其對應的應用的包名前綴就應該為。是誰這么大牌總結本文主要介紹了中的命名規范注解關鍵字關鍵字等內容。 歡迎關注我的微信公眾號,共同打牢Java的基礎,向著遠方進擊 showImg(https://segmentfault.com/img/bVboaBO?w=129...
摘要:最近在看一本有關編程規范的書,書中精煉闡述了使用語言時應該遵循的一些原則。所以擁有良好一致的編程規范對于一個團隊至關重要。二堅持最小驚奇原則在編碼過程中盡量避免可能讓軟件用戶感到意外的做法。 最近在看一本有關Java編程規范的書,書中精煉闡述了使用java語言時應該遵循的一些原則。接下來的一段時間我將在這里總結我的學習內容,也希望這一系列文章能夠對有需要的人有所幫助。 不考慮任何編碼規...
摘要:大家好,我是樂字節的小樂,這次要給大家帶來的是變量與數據類型。本文是第一集編程規范,關鍵字與標識符。后面我們要寫一個程序的過程。需求分析實現代碼體現注釋的作用解釋說明程序,提高了代碼的閱讀性。可以幫助我們調試程序。 大家好,我是樂字節的小樂,這次要給大家帶來的是Java變量與數據類型。本文是第一集:Java編程規范,關鍵字與標識符。showImg(https://segmentfaul...
摘要:二格式規范在上一篇的編程規范一中我們講述了在編碼中的一般原則,雖然這些原則并不涉及具體的代碼規范,但是這些原則卻是我們在開發過程中所應該遵循的規范與思想。不要把多個語句放在同一行里以免超過最大可接受寬度。 二、格式規范 在上一篇的java編程規范(一)中我們講述了在Java編碼中的一般原則,雖然這些原則并不涉及具體的代碼規范,但是這些原則卻是我們在Java開發過程中所應該遵循的規范與思...
摘要:在上一篇的編程風格學習二中我們學習了一些在編碼過程中的格式規范,遵循這些規范毋庸置疑是我們的書寫高質量代碼的前提與基礎。二語言編程規范常量命名常量的每個單詞均大寫,單詞之間使用下劃線連接。方法表示動作,采用動詞命名。 在上一篇的java編程風格學習(二)中我們學習了一些在Java編碼過程中的格式規范,遵循這些規范毋庸置疑是我們的書寫高質量代碼的前提與基礎。今天我們更進一步,一起來學習J...
閱讀 1794·2023-04-26 00:47
閱讀 1551·2021-11-11 16:55
閱讀 2616·2021-09-27 14:04
閱讀 3557·2021-09-22 15:58
閱讀 3558·2021-07-26 23:38
閱讀 2137·2019-08-30 13:47
閱讀 1986·2019-08-30 13:15
閱讀 1151·2019-08-29 17:09