1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      細細講述Java技術(shù)開發(fā)的那些不為人知的規(guī)則-創(chuàng)新互聯(lián)

      細細講述Java技術(shù)開發(fā)的那些不為人知的規(guī)則

      成都創(chuàng)新互聯(lián)公司主要為客戶提供服務(wù)項目涵蓋了網(wǎng)頁視覺設(shè)計、VI標(biāo)志設(shè)計、成都全網(wǎng)營銷推廣、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)成都手機網(wǎng)站制作、微商城、網(wǎng)站托管及網(wǎng)站維護公司、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務(wù)器租用、視頻、平面設(shè)計、SEO優(yōu)化排名。設(shè)計、前端、后端三個建站步驟的完善服務(wù)體系。一人跟蹤測試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都木屋行業(yè)客戶提供了網(wǎng)站維護服務(wù)。

      本文介紹的Java規(guī)則的說明分為3個主要級別,中級是平時開發(fā)用的比較多的級別,在今后將陸續(xù)寫出其他的規(guī)則。遵守了這些規(guī)則可以提高程序的效率、使代碼又更好的可讀性等。

      一、在finally方法里關(guān)掉input或者output資源

      方法體里面定義了input或者output流的話,需要在finally里面把它關(guān)掉。以下這幾種調(diào)用不需要遵守這條規(guī)則,因為colse()方法不起作用:

      java.io.StringWriter 
      java.io.ByteArrayOutputStream 
      java.io.ByteArrayInputStream

      如果再方法返回的時候沒有調(diào)用close()方法來釋放input()和output()的資源的話,會導(dǎo)致一個系統(tǒng)資源泄漏。而且在任何情況下都要確定在返回全調(diào)用了close()方法,包括出現(xiàn)異常的時候。所以需要在finally方法里面加入這個方法。這樣就保證了在任何情況下都會關(guān)閉資源。

      錯誤示例:

      public class CIO 
      {
          public void method (java.io.File f)
          {
              java.io.FileInputStream fis = null;
              try 
              {
                  fis = new java.io.FileInputStream (f);
                  fis.read ();
                  fis.close ();
              }
              catch (java.io.FileNotFoundException e1)
              {
                  System.out.println("File not found");
              }
              catch (java.io.IOException e2) 
              {
                  System.out.println("I/O Exception");
              }
              // 如果出現(xiàn)異常,這里就不能保證關(guān)閉資源。
          }
      }

      修正后的代碼:

      public class CIOFixed
      {
          public void method (java.io.File f)
          {
              java.io.FileInputStream fis = null;
              try {
                  fis = new java.io.FileInputStream
                  (f);
                  fis.read ();
              }
              catch (java.io.FileNotFoundException e1)
              {
                  System.out.println("File not found");
              }
              catch (java.io.IOException e2) 
              {
                  System.out.println("I/O Exception");
              }
              finally
              {
                  if (fis != null)
                  {
                      try 
                      {
                          fis.close ();
                      }
                      catch (java.io.IOException e) 
                      {
                          System.out.println("I/O Exception");
                      }
                  }
              }
          }
      }

      二、else的注意問題

      一般總認為如果if語句只有一句的話,那么{}就是可要可不要的了。可是如果if有else嵌套的話,就不一樣了,{}是必需的

      錯誤示例:

      if (i < 5) 
      if (i < 2)
      i++; else
      i--;

      修改后:

      if (i < 5) 
      {
          if (i < 2)
          i++;
      } else 
      {
          i--;
      }

      三、不要再catch()塊里什么代碼也不放

      在catch()塊里面放入一些錯誤處理代碼是一個好的習(xí)慣。但是如果catch()里面有有關(guān)javadoc 的代碼,那也是可以的。

      錯誤示例:

      try {
          System.in.read ();
      }
      catch (java.io.IOException e) 
      {
          // 錯誤
      }

      正確:

      try {
          System.in.read ();
      }
      catch (java.io.IOException e) 
      {
          System.out.println("Descriptive error");
      }

      四、不要在if條件里面附值

      如果這樣做的話,系統(tǒng)會報告錯誤。在java的很多條件聲明里面用附值是很不明智的,而且系統(tǒng)也會報告錯誤。很容易引起異常。遵守這條規(guī)者能夠使維護簡單,避免不一致。

      錯誤示例:

      if (b = true)

      正確的:

      if (b == true)

      五、for語句需要循環(huán)體。

      如果沒有{}的話,for語句只會執(zhí)行一次!錯誤示例:

      for (i = 0; i < 10; i++);
      System.out.println (i);

      這里print() 只會執(zhí)行一次。正確:

      for (i = 0; i < 10; i++) 
      {
          // FIXED
          System.out.println (i);
      }

      六、不要把方法定義成main()

      在java里,main()方法是一個特別的方法。所以在自己定義方法的時候不要定義這樣的名字,以免引起混擾。

      七、不要直接或者間接的定義'Error'和'Throwable'的子類

      java.lang.Error只在JVM出現(xiàn)反常的時候覆蓋這個方法,如果你定義了直接或者不直接的類繼承了類'Error',也就指出了這個錯誤是JVM內(nèi)部的,而不是這個類的。所以對于java編譯器來說是不可見的,這樣就不能檢查錯誤的異常處理了。

      java.lang.Throwable'是'java.lang.Exceptionjava.lang.Error的上級類,用戶如果象定義異常類的話應(yīng)該繼承java.lang.Exception

      錯誤示例:

      public class ABC extends Error

      正確:

      public class ABC extends Exception

      八、有關(guān)"switch"語句里面的"case"問題

      最好在每一個 “case”里都定義一個”return”或者“break”來控制不要走到下面的

      “case”里去。如果一個”case”語句在代碼的最后沒有一個”break”或者”return”句,程序就會走到下一個”case”。如果這個”case”是最后一個的話,那就沒什么問題,如果后面還有”case” 的話,看起來就不×××全了。

      錯誤示例:

      switch (i) {
          case 1:
          x = 10;
          break;
          case 2: 
          x = 20;
          default:
          a = 40;
          break;

      正確:

      switch (i) {
          case 1:
          x = 10;
          break;
          case 2: // VIOLATION
          x = 20;
          break;
          default:
          x = 40;
          break;

      九、建議不要使用'System.getenv ()'

      不建議使用'System.getenv()',這個方法看起來很好用,不過并不是所有的系統(tǒng)都有環(huán)境變量的。不用這個方法也可能帶來一些不方便。

      錯誤示例:

      void method (String name) 
      {
          System.getenv (name);
          // 可以用其他方法來代替
      }

      如果不用這個方法,我們可以用其它的方法來代替。比如:'System.getProperty()’,'getTypeName ()'等,這也可以找到j(luò)ava的系統(tǒng)屬性。

      十、不要使用’\n’或者'\r'來分行

      這兩個標(biāo)記看來很普遍,特別是’\n’。我們經(jīng)常用來作為分行用。但是不同的系統(tǒng)用不同的分行字符,所以這些字符在某些意義上違背了java的平臺無關(guān)性。

      錯誤示例:

      System.out.println("Hello\n" + name);

      我們可以用其它的一些方法來代替,比如println(),這個方法在不同的系統(tǒng)平臺上都起到相同的作用。后者推薦大家用這個方法:

      System.getProperty("line.separator")

      十一、使所有的內(nèi)部類"private"

      Java允許一個類包含另外一個類,帶是Java byte code沒有這個概念。類被編譯器解釋成package-private類。從更深的程度來說,包含類的任何內(nèi)部私有對象能被內(nèi)部類訪問的也能被同一個包內(nèi)的其他類訪問。

      錯誤示例:

      public class INNER 
      {
          class INNER_Class 
          {
              void setValue(int i)
              {
                  _value = i;
                  // 現(xiàn)在包就可以訪問了
              }
          }
          private int _value;
      }

      所以需要加上private class INNER_Class

      十二、不要使接口序列化

      如果一個字節(jié)數(shù)組包含了一個被序列化的對象。***者就能讀到這個對象的內(nèi)部狀態(tài)合字段(包括private的)。

      錯誤示例:

      public interface sample extends
      java.io.Serializable

      愛碼仕i:專注于Java開發(fā)技術(shù)的研究與知識分享!

      ————END————

      細細講述Java技術(shù)開發(fā)的那些不為人知的規(guī)則

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


      網(wǎng)站欄目:細細講述Java技術(shù)開發(fā)的那些不為人知的規(guī)則-創(chuàng)新互聯(lián)
      當(dāng)前URL:http://www.ef60e0e.cn/article/dgedpd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        苍山县| 大悟县| 阜新市| 曲松县| 临高县| 霸州市| 肇庆市| 彰化市| 鹤山市| 比如县| 富阳市| 苏州市| 牙克石市| 大连市| 五大连池市| 凤庆县| 大悟县| 梁山县| 黄陵县| 菏泽市| 德安县| 彭泽县| 阜平县| 汾西县| 崇明县| 商水县| 开封县| 五常市| 张家港市| 西乌珠穆沁旗| 新龙县| 蓝田县| 海原县| 永吉县| 尉氏县| 澳门| 广平县| 富民县| 广南县| 台安县| 嘉鱼县|