成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

JAVA代碼規(guī)范

GHOST_349178 / 3369人閱讀

摘要:前言作為一名全干打字員,干活時(shí)經(jīng)常會(huì)被要求使用各種各樣的語(yǔ)言去實(shí)現(xiàn)各種各樣的需求,來(lái)回切換起來(lái)寫(xiě)的代碼就會(huì)或多或少有點(diǎn)不規(guī)范。今天我們以為例,講講在代碼中,我們需要注意的某些規(guī)范。

前言

作為一名全干打字員,干活時(shí)經(jīng)常會(huì)被要求使用各種各樣的語(yǔ)言去實(shí)現(xiàn)各種各樣的需求,來(lái)回切換起來(lái)寫(xiě)的代碼就會(huì)或多或少有點(diǎn)不規(guī)范。今天我們以JAVA為例,講講在代碼中,我們需要注意的某些規(guī)范。(本文標(biāo)準(zhǔn)依賴(lài)于阿里巴巴的JAVA開(kāi)發(fā)代碼規(guī)范)

示例

以下舉出本猿在工作中常常出現(xiàn)的問(wèn)題,包括但不僅限于:

邏輯判斷語(yǔ)句

if/else/for/while/do 語(yǔ)句中必須使用大括號(hào),即使只有一行代碼,避免使用下面的形式:

if(condition) statements;

屬性copy

很多童鞋喜歡使用 Apache Beanutils 進(jìn)行屬性的copy, Apache BeanUtils 性能較差,我們應(yīng)該盡量避免使用,可以使用其他方案比如 Spring BeanUtils , Cglib BeanCopier 。

TestObject a = new TestObject();
TestObject b = new TestObject();
a.setX(b.getX());
a.setY(b.getY());  

覆寫(xiě)方法

所有的覆寫(xiě)方法,都必須要加上 @Override 注解。

類(lèi)方法命名

方法名、參數(shù)名、成員變量、局部變量都應(yīng)該統(tǒng)一使用 lowerCamelCase ,類(lèi)名使用 UpperCamelCase 風(fēng)格,遵從駝峰命名的標(biāo)準(zhǔn),盡量避免如 _ -等字符連接,但以下情形例外:(領(lǐng)域模型的相關(guān)命名)DO / BO / DTO / VO / DAO。另外,類(lèi)都應(yīng)該加上創(chuàng)建者的信息,方法名也應(yīng)該加上對(duì)應(yīng)的參數(shù)及用途說(shuō)明。

常量命名應(yīng)該全部大寫(xiě),但此間使用下劃線隔開(kāi),力求語(yǔ)義表達(dá)完整清楚,不要嫌名字長(zhǎng)。

Random實(shí)例

首先 Random 示例包括 java.util.Random 或者 Math.random(),我們應(yīng)該避免其被多線程使用,雖然共享該實(shí)例是線程安全的,但會(huì)因競(jìng)爭(zhēng)統(tǒng)一 seed 導(dǎo)致性能下降。

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();   

+字符串拼接

在循環(huán)體內(nèi),我們應(yīng)當(dāng)使用 StringBuilderappend 方法進(jìn)行字符串的連接。

反例:
    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判斷

很多人喜歡使用下面的代碼進(jìn)行 equals 判斷是否為某個(gè)值:

public static final String type = "FOOD";
if(Object.equals(type)){
    //do something
}

對(duì)象中的equals很容易拋空指針異常,所以我們應(yīng)該盡量使用常量或者確定有值的對(duì)象來(lái)調(diào)用equals。

public void f(String str){
        String inner = "hi";
        if(inner.equals(str)){
            System.out.println("hello world");
        }
    }

集合初始化

我們往往在集合初始化的時(shí)候忘記指定集合的初始值大小,在高并發(fā)的情況下,這樣很可能會(huì)造成內(nèi)存的使用不當(dāng)引起一系列的問(wèn)題。所以在使用諸如 HashMap 的時(shí)候盡量指定初始值的大小。

反例:   
   Map map = new HashMap();   
正例: 
   Map map = new HashMap(16);   

注釋

方法內(nèi)部應(yīng)當(dāng)使用單行注釋?zhuān)诒蛔⑨屨Z(yǔ)句的上方另起一行,使用 // 進(jìn)行注釋?zhuān)嘈凶⑨寗t使用 /* */ ,強(qiáng)迫癥下應(yīng)注意與代碼對(duì)齊。

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語(yǔ)句

在每一個(gè)switch塊內(nèi),每一個(gè)case都必須通過(guò) break/return 來(lái)終止或者是注釋說(shuō)明程序繼續(xù)執(zhí)行到某一個(gè)case為止,并且都應(yīng)該包含一個(gè) default 語(yǔ)句放在最后,即便沒(méi)有代碼。

switch( x ){
        case 1 :
        break ;
        case 2 :
        break ;
        default :
    }  
結(jié)語(yǔ)

雖然我們往往寫(xiě)出的代碼可能不是很高效、簡(jiǎn)潔,但是我們一定注意代碼的可讀性,畢竟代碼除了機(jī)器看之外,也是給人看的。

福利

送福利送福利啦,本猿最近獲得了三張 5QB 的抵用卷,本著蚊子再小也是肉的原則,把它送給在公眾號(hào)上留言的前三位童鞋,留言的前三位童鞋看到后記得在后臺(tái)留下QQ號(hào)聯(lián)系打字員大大領(lǐng)取福利喲~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/70807.html

相關(guān)文章

  • Java虛擬機(jī)規(guī)范(介紹)

    摘要:此處指定的虛擬機(jī)與平臺(tái)兼容,并支持語(yǔ)言規(guī)范中指定的編程語(yǔ)言。第章說(shuō)明了虛擬機(jī)的指令集,按字母順序顯示操作碼助記符。 介紹 一點(diǎn)歷史 Java?編程語(yǔ)言是一種通用的、并發(fā)的、面向?qū)ο蟮恼Z(yǔ)言,它的語(yǔ)法類(lèi)似于C和C++,但它省略了許多使C和C++復(fù)雜、混亂和不安全的特性。最初開(kāi)發(fā)Java平臺(tái)是為了解決為聯(lián)網(wǎng)的消費(fèi)者設(shè)備構(gòu)建軟件的問(wèn)題,它旨在支持多種主機(jī)架構(gòu),并允許安全交付軟件組件,為了滿足這...

    chnmagnus 評(píng)論0 收藏0
  • 番外篇2-基本規(guī)范、注釋、static關(guān)鍵字、import關(guān)鍵字

    摘要:今日份重點(diǎn)命名規(guī)范注釋關(guān)鍵字關(guān)鍵字總結(jié)命名規(guī)范規(guī)范的包名名字管理是所有編程語(yǔ)言都必須重視的一個(gè)問(wèn)題。比如說(shuō)百度,其域名為,那么其對(duì)應(yīng)的應(yīng)用的包名前綴就應(yīng)該為。是誰(shuí)這么大牌總結(jié)本文主要介紹了中的命名規(guī)范注解關(guān)鍵字關(guān)鍵字等內(nèi)容。 歡迎關(guān)注我的微信公眾號(hào),共同打牢Java的基礎(chǔ),向著遠(yuǎn)方進(jìn)擊 showImg(https://segmentfault.com/img/bVboaBO?w=129...

    codecraft 評(píng)論0 收藏0
  • Java編程規(guī)范(一)

    摘要:最近在看一本有關(guān)編程規(guī)范的書(shū),書(shū)中精煉闡述了使用語(yǔ)言時(shí)應(yīng)該遵循的一些原則。所以擁有良好一致的編程規(guī)范對(duì)于一個(gè)團(tuán)隊(duì)至關(guān)重要。二堅(jiān)持最小驚奇原則在編碼過(guò)程中盡量避免可能讓軟件用戶感到意外的做法。 最近在看一本有關(guān)Java編程規(guī)范的書(shū),書(shū)中精煉闡述了使用java語(yǔ)言時(shí)應(yīng)該遵循的一些原則。接下來(lái)的一段時(shí)間我將在這里總結(jié)我的學(xué)習(xí)內(nèi)容,也希望這一系列文章能夠?qū)τ行枰娜擞兴鶐椭?不考慮任何編碼規(guī)...

    Godtoy 評(píng)論0 收藏0
  • 樂(lè)字節(jié)Java變量與數(shù)據(jù)結(jié)構(gòu)之一:Java編程規(guī)范、關(guān)鍵字和標(biāo)識(shí)符

    摘要:大家好,我是樂(lè)字節(jié)的小樂(lè),這次要給大家?guī)?lái)的是變量與數(shù)據(jù)類(lèi)型。本文是第一集編程規(guī)范,關(guān)鍵字與標(biāo)識(shí)符。后面我們要寫(xiě)一個(gè)程序的過(guò)程。需求分析實(shí)現(xiàn)代碼體現(xiàn)注釋的作用解釋說(shuō)明程序,提高了代碼的閱讀性??梢詭椭覀冋{(diào)試程序。 大家好,我是樂(lè)字節(jié)的小樂(lè),這次要給大家?guī)?lái)的是Java變量與數(shù)據(jù)類(lèi)型。本文是第一集:Java編程規(guī)范,關(guān)鍵字與標(biāo)識(shí)符。showImg(https://segmentfaul...

    qianfeng 評(píng)論0 收藏0
  • Java編程規(guī)范(二)

    摘要:二格式規(guī)范在上一篇的編程規(guī)范一中我們講述了在編碼中的一般原則,雖然這些原則并不涉及具體的代碼規(guī)范,但是這些原則卻是我們?cè)陂_(kāi)發(fā)過(guò)程中所應(yīng)該遵循的規(guī)范與思想。不要把多個(gè)語(yǔ)句放在同一行里以免超過(guò)最大可接受寬度。 二、格式規(guī)范 在上一篇的java編程規(guī)范(一)中我們講述了在Java編碼中的一般原則,雖然這些原則并不涉及具體的代碼規(guī)范,但是這些原則卻是我們?cè)贘ava開(kāi)發(fā)過(guò)程中所應(yīng)該遵循的規(guī)范與思...

    騫諱護(hù) 評(píng)論0 收藏0
  • Java編程風(fēng)格學(xué)習(xí)(三)

    摘要:在上一篇的編程風(fēng)格學(xué)習(xí)二中我們學(xué)習(xí)了一些在編碼過(guò)程中的格式規(guī)范,遵循這些規(guī)范毋庸置疑是我們的書(shū)寫(xiě)高質(zhì)量代碼的前提與基礎(chǔ)。二語(yǔ)言編程規(guī)范常量命名常量的每個(gè)單詞均大寫(xiě),單詞之間使用下劃線連接。方法表示動(dòng)作,采用動(dòng)詞命名。 在上一篇的java編程風(fēng)格學(xué)習(xí)(二)中我們學(xué)習(xí)了一些在Java編碼過(guò)程中的格式規(guī)范,遵循這些規(guī)范毋庸置疑是我們的書(shū)寫(xiě)高質(zhì)量代碼的前提與基礎(chǔ)。今天我們更進(jìn)一步,一起來(lái)學(xué)習(xí)J...

    CoderDock 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<