老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

細細講述Java技術開發的那些不為人知的規則

細細講述Java技術開發的那些不為人知的規則

我們提供的服務有:成都做網站、網站設計、外貿營銷網站建設、微信公眾號開發、網站優化、網站認證、黑河ssl等。為上千余家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的黑河網站制作公司

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

一、在finally方法里關掉input或者output資源

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

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

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

錯誤示例:

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");
        }
        // 如果出現異常,這里就不能保證關閉資源。
    }
}

修正后的代碼:

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()塊里面放入一些錯誤處理代碼是一個好的習慣。但是如果catch()里面有有關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條件里面附值

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

錯誤示例:

if (b = true)

正確的:

if (b == true)

五、for語句需要循環體。

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

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

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

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

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

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

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

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

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

錯誤示例:

public class ABC extends Error

正確:

public class ABC extends Exception

八、有關"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()',這個方法看起來很好用,不過并不是所有的系統都有環境變量的。不用這個方法也可能帶來一些不方便。

錯誤示例:

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

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

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

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

錯誤示例:

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

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

System.getProperty("line.separator")

十一、使所有的內部類"private"

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

錯誤示例:

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

所以需要加上private class INNER_Class

十二、不要使接口序列化

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

錯誤示例:

public interface sample extends
java.io.Serializable

愛碼仕i:專注于Java開發技術的研究與知識分享!

————END————

細細講述Java技術開發的那些不為人知的規則


本文題目:細細講述Java技術開發的那些不為人知的規則
當前路徑:http://www.xueling.net.cn/article/jsceij.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 久久婷婷人人澡人人爽人人喊 | 国产精品中文 | 欧美国产亚洲精品久久久8v | 啪啪国产 | 国产精品视频免费看 | 国产精品高潮呻吟三区四区 | 国产精品va无码二区 | 午夜视频在线 | аⅴ资源天堂资源库 | 日韩中文字幕在线观看 | 久久久久久久久久久身材好 | 欧美日韩精品一区二区三区 | 国产精品欧美久久久久久日本一道 | 精品麻豆入口免费 | 国产中文字幕免费 | 欧美有码视频 | 成人在线观看国产 | 无码被窝影院午夜看片爽爽 | 亚洲精品久久av无码一区二区 | 久久久精品久久久毛片 | 好大好硬好深好爽想要AV | www亚洲 | 啊灬啊灬啊灬快灬A片免费 女人喷液全过程在线观看 色婷婷综合和线在线 | 亚洲AV日韩AV男人的天堂在线 | 国产真实愉拍系列在线视频 | 热久久只有精品 | 青楼传媒成年免费网站 | 欧美精品久久久久久久久久久 | 国产精品久久久久久久久免费看 | 亚洲AV永久无码精品放毛片 | 成人3dh动漫在线播放网站 | 日欧一级片 | 日日夜夜免费精品视频 | 国产情人综合久久777777 | 99热久久免费频精品18 | 男人操女人免费网站 | 班花在教室轮流澡到高潮视频 | 成人久久18免费网站麻豆 | 在线国产播放 | 91精品激情在线观看最新更新 | 成年大片免费视频播放二级 |