《Effective Java讀書筆記》--通用程序設計

將局部變量做用域最小化

最有力的技術是在第一次使用它時聲明,並把它初始化。
以下代碼分別用for和while對lst數組作了兩次遍歷。你們能夠想一想, for和while哪一種寫法更優呢?
public class Test {
	public static void main(String[] args) {
		int[] lst = { 1, 2, 3, 4 };
		for (int i = 0; i < lst.length; i++) {
			System.out.println(lst[i]);
		}

		for (int i = 0; i < lst.length; i++) {
			System.out.println(lst[i]);
		}

		int i = 0;
		while (i < lst.length) {
			System.out.println(lst[i]);
			i++;
		}

		i = 0; // 若是漏了這句,將致使一個bug。
		while (i < lst.length) {
			System.out.println(lst[i]);
			i++;
		}

	}
}

for比while更好,緣由以下: java

  • for的變量i只在for循環內有效,而while採用的i做用域更大。
  • 正因爲while語句中的計數變量i的做用域更大,因此寫第二個while循環,漏掉了i的初始化,也能編譯經過,可是產生了bug!!!而採用for語句,漏掉了i的定義,是不能經過編譯的。
  • for的代碼更短

若是要求精確的答案,避免使用float和double

若是處理的數值不大而且不介意本身處理十進制小數點的話,採用int或者long。若是數字很大,你就必須使用BigDecimal。 數組

經過接口引用對象:

好比: 性能

List sub = new Vector();
//Vector sub = new Vector(); 不建議

採用接口引用對象,會使程序更加靈活。好比sub採用了另外一種實現的話,只需改構造方法就行: spa

List sub = new ArrayList();

簡而言之,若是接口的功能可以知足計算的要求,就用接口來引用對象;若是不是,則使用類層次結構中提供所需功能的最高層次的類。 code

使用本地方法(JNI)來提升程序性能的作法不值得提倡。

相關文章
相關標籤/搜索