前不久分享了一篇文章,將的是java動態綁定和向上轉型,說實話還沒仔細看這篇文章,自己很懶。不過對於給的第一個程式,作者的解釋是參數在編譯階段被匹配,得出的總結是重載函數的實際調用版本由編譯器綁定決定,而覆蓋函數的實際調用版本由動態綁定決定。還是有點道理,不過對於程式,我覺得剛開始看的時候,未免把他想的太複雜了。先貼上程式,我修改了點。 class Base{ public void foo(Base x){
讀這本書的時候選了第二版,完全是因為譯者是侯捷。。首先是Introduction to object 有講五條基本準則然後講對象的產生與毀滅 很多地方都是對照著C++來講的雖然網上看到很多人說這書不適合初學者看,個人覺得可以直接上手的尤其是C++陣營的人,對大學生來說好多也是從C++過渡而來的,基礎好的可以看當然有些奧秘不是看一兩遍書就能參透的
今天看了第四章Initialization and Clean up建構函式是自然而又有效一個設定建構函式被調用前,對象的自動初始化動作不受程式員控制,但是調用後對象會處於你所希望的狀態關於建構函式的argument list能夠進行寬化轉型,但是窄化轉型需要明確的標識,具體參見書中冗長的例子。。。記憶清除,這是和C++迥異的地方三句話,大體描述了整個機制1.記憶體回收不等於析構2.對象可能不會被回收3.記憶體回收只回收記憶體
在Java中,假定由一個類A,要實現深Clone,只需簡單地同時做到下面兩點即可:1. A類要實現Serializable介面。例如: class A implements Serializable { ... } 2. 在A類中加入下面的方法: public A Clone() // Deep clone for object of any complexity { try {
小程式寫過不少,但對於各種記憶體配置還知之甚少,這回學習JAVA,對這些有了一些淺顯瞭解,寫出來,備忘。 對於一些原始類型,我們稱為實值型別,通常分配的記憶體空間在棧中,而對於通過new建立的類型,則在堆中。用代碼來解釋比較好。 public String cursor;public int teachAge;Visitor visitor = new Visitor();
package Sample; public class Sample{ public static void main(String[] args) throws Exception { java.io.ObjectOutputStream os = new java.io.ObjectOutputStream(new java.io.FileOutputStream("Object.out"));