java基礎學習——對物件導向的重識,java基礎物件導向
最近幾天在看java的視頻,感覺很多東西java文法上很像c#,但是還是有很多內容驚到我:
1,java虛擬機器
用過VMWar或者VirtualBox的童鞋都對“虛擬機器”這個詞有個大致的瞭解,虛擬機器提供了個虛擬平台,讓我們可以類比一些脫離硬體的環境。java裡的虛擬機器起到了一個類似以前學過的ODBC驅動程式的作用,它屏蔽了底層的差異,讓作業系統通過虛擬機器向下面看去,作業系統的感覺都是一樣的。
有了這一層東西,我們徹底解開了底層硬體和運行作業系統之間的耦合,實現了一次編譯,到處啟動並執行夢想。這裡的解耦思想和軟體的分層思想是一致的。
如果你想讓各層次都靈活變動,那麼,在它們中間加上介面吧。
2,資料類型
在基礎資料型別 (Elementary Data Type)裡面,雷到我的是數組和String是參考型別,看來以前我的c#很不紮實啊,百度了一下,c#也是這樣的,它們都是參考型別;
先討論下對基本類型和參考型別的記憶體訪問的區別:在訪問基本類型的時候可以直接取到值,而參考型別必須先從stack 裡面取到heap的地址,然後跑到heap裡面去取實際的值;從對記憶體的訪問來看,參考型別似乎沒有值類型的優勢。
但從物件導向的角度看,參考型別還是有眾多好處的:
a.參考型別可以被序列化,原始類型不行。(這個不懂!)
b.參考型別提供的方法可以靈活轉換,可以擴充,原始類型不行
c.在集合類中只能使用對象,不能使用原始類型
d.原始類型沒有null的概念,對象有,某些情況下需要辨別某個參數是否被初始化了,如果使用原始類型,那麼0的值不知道是初始值還是沒有初始化系統自動給的。
關於兩種資料類型用變和不變的觀點看,基礎資料型別 (Elementary Data Type)程式設計語言中不變的部分,而參考型別是為了應對顯示世界中的對象而動態組合的類型。
3,建構函式的返回值問題
以前學習c++的時候,碰到過很多建構函式的初始化類成員的問題。這次在學習建構函式這裡的時候,視頻中為了說明建構函式沒有返回值的問題時,特意在為建構函式加上void,結果報錯。 但是有沒有想過建構函式為什麼沒有返回值呢? 或者說建構函式的返回值已經有一個不可更改的預設值了,就是對象本身。 想想我們使用new的時候,Dog d=new Dog(),new後面的東西就是調用的建構函式,它返回的就是d.
那麼,我們是不是可以認為因為類的建構函式有預設的返回值而不能自己定義返回值呢?
小結:物件導向的語言到現在已經學過了VB.NET ,C #,C++,這次對java的學習,是對物件導向知識的一個重新的梳理和總結提升的過程;也是認識封裝,繼承,多態,抽象,並對它們重新思考的過程。
JAVA物件導向程式設計的學習基礎
《Java從入門到精通》視頻教程由孫鑫老師錄製(作者網站:www.sunxin.org),教程通俗易懂,內容全面,帶領Java初學者從入門到精通,快速掌握 Java 程式設計語言。
說明:學習本套教程,您需要瞭解一些基本的編程開發基礎知識,例如變數、語句、數組、迴圈等。這樣學習本套視頻,才會輕鬆而又快捷地掌握Java開發。
教程地址:www.pconline.com.cn/...5.html參考資料:www.pconline.com.cn/...5.html
對於學完java基礎後
1、HTML
2、CSS+DIV
或趁熱打鐵
1、SQL資料庫
2、JDBC
然後
3、JSP+servlet
4、Java EE 架構技術