一個暑假,兩本書,讓我了解到了Java的神奇美妙,這個工具的年齡跟我一樣大,然而日久彌新,隨著電腦技術科學家,工程師的開發,Java的功能越來越完善。學習的時間不長,但我比較著學習,把Java跟C、C++、C#比較著學習,收獲良多。
Java沒有VS那種可視化的編程環境,現在還有點不習慣,畢竟完成這些程序的代碼量還是挺大的,但Boss跟我們說,Swing、AWT、Bean等圖形化界面設計,不用看,直接跳過,只是納悶,既然這種技術落后,為什么還要寫進書里。然而,事實上,經過瀏覽一遍,這些圖形界面的設計模式確實很讓人捉急,確實很好奇,當年的工程師們是怎么過來的。
最棒的是,Java的指針已經被封裝起來了,不用像C、C++一樣,一遍遍苦逼的被指針耍的團團轉,debug半天不知所以然,由于一個小小的指針,可以耗費一整天的時間,不再考慮鏈表、隊列、棧等數據結構,都被封裝好了,多么造福的一項設計啊
在Java的面向對象特性中,感覺比C++好多了,用簡單的接口概念、metaclass等多繼承手段代替C++的多繼承。然而令我奇怪的是,Java竟然不支持多繼承!畢竟在C++中,一個類經常可以通過繼承衍生出很多個不同的子類,孫子類。下文才知道,可以使用類的接口解決復雜任務,而不必知道其中的實現細節。一個類可以實現一個或多個接口,并在需要接口的地方,隨時使用實現相應接口的對象。了解到Java的封裝性,也許就是其迅速走紅的一個原因吧,良好的封裝性,讓代碼不易被篡改。
對于package的概念,確實感到很新鮮,我把他們類比為頭文件,庫……都不想,因為在同一個PRoject中,可以新建很多個package,每個package還可以建立很多個class,到底有什么意義呢,為了封裝性?書中說,為了確保類名的唯一性,嵌套的package之間沒有任何聯系。
程序出錯了怎么辦?我不是說程序員敲代碼的錯誤,而是當遇到一些比較調皮的用戶,故意不輸入我們想要的數據,導致程序出現異常,這怪誰啊?當然是苦逼程序員咯,所以本著客戶就是上帝的原則,既要考慮到用戶有多調皮,又要關心電腦不要傲嬌。把異常分類:Error類和Exception類。這些還遠遠不能滿足報錯的需要,還需要創建特定的異常類
JDBC,這是Boss安排給我的第一個任務。雖然完成了,但在編寫的過程中,有許多的疑問,首先,既然是連接的端口,難道不不可以直接import這個包嗎?接著,假如不能import這個包,直接把代碼copy不行嗎?另外,還不能通過編譯器完成對數據庫的創建,需要在MySQL里面進行創建,這,好麻煩啊!!!還有進行增刪查改的操作是固定的,能不能隨時根據用戶需要打印出來呢?命令行只能寫所有數據庫都有的那種命令才能通用,求同存異,這種思想一直存在。創建一個接口,目的是方便,然而這還遠遠沒有達到方便的目的。
Java的應用跨國界,堪稱計算機領域的絲綢之路,只是,世界這么大,語言這么多,完成這些語言的轉換是多么蛋疼的一件事啊,日期、時間、貨幣、數字格式……各個地區各有特色,都要一一對他們進行設置,做完這些工作,很累的啊,難道跨國界這么費勁嗎?難道不能以來系統來完成這些操作嗎?
安全性,Java對程序安全性的真的是苛刻到無以復加的地步。C中,經常會忽略對數組邊界的檢查,然而Java絕不會留下這個可乘之機。Java的三種安全機制:校驗器、安全管理器、數字簽名,一項比一項嚴格,對于惡意的攻擊性代碼,Java的安全性機制,保護著程序不受攻擊(在書中,我了解到,惡意代碼的攻擊方式主要是以繼承出一個新的子類、利用數組的邊界漏洞、通過指針使內存溢出、篡改代碼達到修改注冊表的目的等方式為主),數字簽名(也就是開發者的身份證明)又包括消息摘要,消息簽名、校驗簽名、證書簽名,證明程序未曾被黑客修改過。很有趣哦,當自己還不能完全信任對方的程序時,通過第三方認證,確定程序的安全性。這在現實生活的人際交流中,很常見吶,兩個陌生人通過一個共同的熟人搭橋達到熟識的目的。
Java可以很輕松的完成打開socket等操作,可以通過遠程方法調用機制使得分布式對象之間進行通信。通過設置端口號,我用編譯器訪問了美國的國家技術研究所的服務器。我知道,Java Wed的范圍何其寬廣,我所接觸的只是冰山一角。雖然了解到分布式結構,但由于書中給的例子只是一臺服務器對應一個客戶端,,通過這個例子,讓我知道,客戶端和服務器之間的數據交流環節,以及交流之前的身份認證。此外,對于多臺客戶端訪問同一個服務器,我猜想是否可以使用多線程管理,達到多個客戶端訪問一臺服務器的目的?還是開辟多個端口以滿足多臺客戶端訪問的目的(這樣的話,客戶端的需求的數量又是無止境的)?聯想到蜂窩拓撲網絡,對于書中的介紹有更加的不足了。
Java另一個有趣的地方,就是可以調用本地方法。代碼啊,敲太多也會煩的,Java可以與其他語言兼容。以前敲過的程序,經過鼠標的稍微點擊,編譯器的小小操作就可以了果然很方便。
Java的水好深,隨便一個方面的研究就可以發現很多問題,不只是知識的不足,更有經驗上的不足。
新聞熱點
疑難解答