java 知識點

單精度和雙精度的問題

單精度表示有效位數是7位

雙精度表示有效位數是16位

public class precitionDemo {
	public static void main(String[] args) {
		float f = 123.123456789f;
		double d = 12345678.123456789;
		System.out.println(f);
		System.out.println(d);
	}
}

運行結果:

123.12346

1.234567812345679E7

隨之而來的就是損失精度的問題



++i 和 i++問題

        int i = 1;
		int j;
		j = i++; // 先賦值,再運算
		System.out.println("i:" + i +"\t"+ "j:" + j);

運行結果:

i:2j:1 

== 和equals()問題

   ==:是用來判斷兩個對象的地址是否相同,即是否是指相同一個對象。比較的是真正意義上的指針操作。

   equal:是用來比較兩個對象內部的內容是否相等的.

public class Object {
     public boolean equals(Object obj) {
        return (this == obj); //object類中的equals方法直接返回==的結果
    }
}

由於所有的類都是繼承自java.lang.Object類的,所以如果沒有對該方法進行覆蓋的話,

調用的仍然是Object類中的方法,而Object中的equal方法返回的卻是==的判斷,

因此,如果在沒有進行該方法的覆蓋後,調用該方法是沒有任何意義的。

在java面向對象的處理中我們一般在javabean中都要選擇重寫equals方法,


static final和transient

  static表示"全局"/"靜態"的意思,用來修飾成員變量和成員方法,以及代碼塊,獨立於該類的任何對象,在類被虛擬機加載的時候加載進內存,可以由類直接調用.

更加完整的分析相見: http://www.cnblogs.com/dolphin0520/p/3799052.html

關於final關鍵字: http://www.cnblogs.com/dolphin0520/p/3736238.html  


















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章