国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

實(shí)現(xiàn)高效Java編程規(guī)范的十一條基礎(chǔ)規(guī)則

2019-11-18 10:41:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  本文介紹的java規(guī)則的說(shuō)明分為5個(gè)級(jí)別,級(jí)別1是最基本也是最重要的級(jí)別,在今后將陸續(xù)寫出其他的規(guī)則。遵守了這些規(guī)則可以提高程序的效率、使代碼有更好的可讀性等。

  (1) 避免使用NEW要害字來(lái)創(chuàng)建String對(duì)象

  把一個(gè)String常量copy到String 對(duì)象中通常是多余、浪費(fèi)時(shí)間的。

Public class test{
 Public void method(){
  System.out.PRint (str);
 }
 private String str = new String ("1"); //這里新建對(duì)象是完全沒(méi)有必要的
 private String str2=”2” //正確的應(yīng)該如此
}
  (2) 避免使用不必要的嵌套

  過(guò)多的嵌套會(huì)使你的代碼復(fù)雜化,減弱可讀性。

Public class test {
 String add (){
  Int c=(a=a+b)+b; //過(guò)于復(fù)雜
  Return c
 }
}
  (3) 避免在同一行聲明不同類型的多個(gè)變量

  這樣可以使程序更加清楚,避免混亂

private int index, index1[];
  正確的應(yīng)該如此:

private int index;
private int index1[];
  (4) 在每一行里寫一條語(yǔ)句

  這條規(guī)則不包括for語(yǔ)句:比如:'for (int i = 0; i < 10; i++) x--;’可以增加代碼的可讀性。

public class OSPL {
 int method (int a, int b) {
  int i = a + b; return i; // 可讀性不強(qiáng)
 }
  正確的:

public class OSPLFixed {
 int method (int a, int b) {
  int i = a + b;
  return i;
 }
}
  (5)經(jīng)常從finalize ()中調(diào)用super.finalize ()

  這里的finalize ()是java在進(jìn)行垃圾收集的時(shí)候調(diào)用的,和finally不一樣。假如你的父類沒(méi)有定義finally()的話,你也應(yīng)該調(diào)用。這里有兩個(gè)原因:(1)在不改變代碼的情況下能夠?qū)⒏割惖膄inally方法加到你的類中。 (2)以后你會(huì)養(yǎng)成習(xí)慣調(diào)用父類的finally方法,即使父類沒(méi)有定義finally方法的時(shí)候。

  正確的方法應(yīng)該如此:

public class parentFinalize {
 protected void finalize () throws Throwable {
  super.finalize(); // FIXED
 }
  (6) 不要在finalize ()中注銷listeners

  不要再finalize ()方法中中注銷listeners,finalize ()只有再?zèng)]有對(duì)象引用的時(shí)候調(diào)用,假如listeners從finalize()方法中去除了,被finalize的對(duì)象將不會(huì)在垃圾收集中去除。

public void finalize () throws Throwable {
 bButton.removeActionListener (act);
}
  (7) 不要顯式的調(diào)用finalize ()方法

  雖然顯式的調(diào)用這個(gè)方法可以使你確保你的調(diào)用,但是當(dāng)這個(gè)方法收集了以后垃圾收集會(huì)再收集一次。

public class T7 {
 public void finalize() throws Throwable {
  close_resources ();
  super.finalize ();
 }
 public void close_resources() {}
}
class Test {
 void cleanup () throws Throwable {
  t71.finalize(); // 調(diào)用
  t71 = null;
 }
 private t71 = new T7 ();
}
  對(duì)于這樣的調(diào)用我們應(yīng)該自己創(chuàng)建一個(gè)釋放的方法,做最初finalize ()所作的事情,當(dāng)你每次想顯式的調(diào)用finalize ()的時(shí)候?qū)嶋H上調(diào)用了釋放方法。然后再使用一個(gè)判定字段來(lái)確保這個(gè)方法只執(zhí)行一次,以后再調(diào)用就沒(méi)關(guān)系了。

public class T7 {
 public synchronized void release () throws Throwable{
  if (!_released) {
   close_resources (); // do what the old 'finalize ()'
   did _released = true;
  }
 }
 public void finalize () throws Throwable {
  release ();
  super.finalize ();
 }
 public void close_resources() {}
 private boolean _released = false;
}
class TestFixed {
 void closeTest () throws Throwable {
  t71 .release (); // FIXED
  t71 = null;
 }
 private T7 t71 = new T7 ();
}
  (8)不要使用不推薦的API

  盡量使用JDK1.3推薦的API。在類和方法或者java組件里有很多方法是陳舊的或者是可以選擇的。有一些方法SUN用了"deprecated“標(biāo)記。最好不要使用例如:



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 廊坊市| 南阳市| 赤城县| 阜平县| 文登市| 巴林左旗| 宝清县| 攀枝花市| 滦南县| 秦皇岛市| 平湖市| 崇阳县| 通许县| 额济纳旗| 东光县| 靖边县| 格尔木市| 仙游县| 博客| 沙坪坝区| 扬中市| 云安县| 阳谷县| 关岭| 乐清市| 锦州市| 新余市| 汝城县| 和田市| 楚雄市| 玉林市| 津市市| 舞阳县| 鸡东县| 荔波县| 保康县| 临夏县| 南木林县| 高平市| 夏河县| 探索|