junhong

          Thinking in java review

          1、? Java? 中所有的 member function 都是動態綁定

          2、? Java 中所有的對象都是通過 new 來動態產生

          3、? 所有的容器 (collection) Object array( 對象數組 e.g String []str=new String[10]) 內都包含都是對象的 reference

          4、? java 中, java 編譯器有責任產生“將 stack 指針前后移動“的程序代碼,所以 它必須能夠完全掌握它所編譯的的程序中“存在 stack 里頭的所有數據的實際大小和存活時間“, 如此一來便會限制程序的彈性。 由于這個限制,盡管我們可以將對象的 reference 存儲與 stack 內,但卻不能將一般的 java 對象放在 stack
          特例:( primitive types
          基本型別會經常被使用,如果使用 new 來產生此類極小,極簡單的變量,會因“ new 將對象置于 heap 之上“ 而效率不好。因此對于此類變量 java 采取 c/c++ 的方式,也就是不用 new 分配器空間,而是產生一種所謂的 ”automatic “變量,存于 static

          5、? 當你產生某個存儲對象的數組,真正產生的是個存儲 reference 的數組。此數組建立之后,其中的每一個 reference 都會被自動設為某個特殊的值 null,

          6、? { String s=new String(“ddd”);} s 這個 reference 會在生存空間之外消失無蹤,但是, s 先前所指的那個 String 對象仍然會繼續占用內存

          7、? Class 內的基本型別變量都有初值,但是在函數內的 local variable 是沒有初值的

          8、? Java 中,所有傳遞的對象的場合,傳遞的都是對象的 reference.

          9、? Return 說明這個函數運行結束,返回到其調用函數。 Return 2 :返回一個數 2 給調用者,同時結束本函數的運行。

          10、????????????? Class 內的 non-static data(state) method , 都是和特定的對象綁定的,一般情況下,你的產生某個對象,再通過該對象取用其數據和函數。所以 non-static 數據 / 函數必須知道他們隸屬于哪一個對象,才有辦法運行 .static 函數內不能使用 non-static 數據和函數

          11、????????????? (object1= = object2 ) 兩個對象的 reference = = 比較得是兩個對象的內存的地址。所以我們不能使用 = = 來測試兩個對象的內容是否相等。如果想測試對象的內容是否相等,應該使用 equal(), 任何一個對象都擁有這個函數。不過你自己的 class 需要 override 這個函數,否則默認的 equal() 函數是還是比較的兩個對象的內存地址。
          Java
          標準程序庫中的大多數 class override equal(), 所以他們都會比較對象的內容是否相等。

          12、????????????? 位運算符都是作用于基本正數類型。該運算符主要是針對硬件編程使用(我們用得不多,)

          待續

          ?

          ?

          posted on 2006-06-27 17:40 junhong 閱讀(1805) 評論(0)  編輯  收藏 所屬分類: java技術

          主站蜘蛛池模板: 炉霍县| 南召县| 平武县| 突泉县| 洪江市| 乡城县| 象山县| 道孚县| 留坝县| 新巴尔虎右旗| 犍为县| 古交市| 定远县| 宜兰市| 明星| 哈密市| 班玛县| 五莲县| 长宁县| 商水县| 武义县| 赤峰市| 民勤县| 桐乡市| 厦门市| 黄大仙区| 梁河县| 湖州市| 尼勒克县| 绿春县| 涿州市| 思南县| 安福县| 二手房| 正蓝旗| 如皋市| 亚东县| 裕民县| 泗洪县| 栾川县| 洪雅县|