一、概述:
這是讀的第一本英文原版的專業書籍,總的來說,因為自己也有一些基礎,讀起來並不是非常的費勁。
前半部分主要是介紹java的相關語法,正好借着這樣的機會鞏固了一下自己的碼代碼的能力,基本上把書中
的代碼都打了一遍,前面的部分主要是用的notepad++來寫的,notepad++ 也有代碼提示功能,用起來還是挺
不錯的,但是用cmd 來編譯,連接,javac 然后java 執行,似乎很容易出現編碼格式方面的問題。后半部分
主要是利用Myeclipse來寫的,也嘗試了一下 intelliJ idea ,但是由於用Eclipse比較習慣的原因,不太
適應它的快捷鍵,寫起來不是很爽,於是作罷。
中間還嘗試過將java程序打包起來,讓它能在未安裝jre的機器上運行,中間試了Jbuilder,exe4j,
install4j,exe4j使用步驟還算簡單,(但實際上很多選項我都忽略了),它能將java程序打包成exe
文件,但仍需要jre的支持。其他的使用起來就更加的復雜了。后來想了想,在win環境下的exe 程序,還算
拿c#,c++之類的寫好了。實際上基本語法的差別並不是非常的大。
二、思考(總的來看):
1、java環境配置的問題,jdk是開發者使用的開發工具,其中主要包括了jre,說明文檔,一些示例代碼,
以及源代碼。其中非常重要的是jdk根目錄下的bin目錄中,可以直接將其添加到path目錄中,它里面包含了
java.exe,javac.exe,等文件。至於jre呢,是java runtime environment, 是執行java程序必須的環境,它
包含了jvm,即java虛擬機,負責java字節碼的解釋。
2、封裝(encapsulation),繼承(inheritance),多態(polymorphism),首先,封裝主要說的是寫類
時注意做到一個高內聚,即如同一個黑箱,僅僅對外公開必要的方法與變量,而對僅僅用於內部的方法,變量
使用private關鍵字。繼承,即是最大的體現了一個代碼的復用性,通過extends關鍵字,或者implement接口,
實現代碼的復用。(這一個可以參看chapter15,是繼承的一個非常好的例子)非常好的利用了java繼承時構造
函數的調用關系。多態,主要是通過類的向上轉型來體現。
三、代碼說明
將書中的代碼基本上打了一遍,下面就這些做一個介紹,方便自己的復用。
chapter2:
Time.java :實現功能,將系統的 totalMilliseconds 化為北京時間,由於8小時時差,要進行一個
加8處理。實際上,java的date 類就實現了這個功能。
TestScanner.java :利用scannner實現控制台輸入。
ShowInput.java :功能是將用戶輸入的內容顯示在一個dialog上。用了JOptionPane。
DisplayUnicode.java :以unicode 16bit 編碼,即"\u6b22\u8fce\u03b1"。
ComputeLoan.java: 輸入貸款以及返回每月payment.
ComputeArea.java :
chapter3:
ReadFile.java :無法讀取文件,代碼有錯誤。。但可以編譯通過。 2015.5.25
Sub.java :出一道減法題,判斷答對了沒有。
chapter4:
MultiplicationTable.java :打99乘法表。
chapter6:
CountLettersInArray.java :顯示隨機字符中,各小寫字符出現的次數。字符出現次數統計。
RandomCharacter.java :隨機產生字符。
BinarySearch.java :二分查找法的數列,必須是要經過排序的.查找數字int型。
InsertionSort.java :插入法排序。
LinearSearch.java :線性查找法。
SelectionSort.java :從小到大排列,使用的選擇排序的方法.
TestSystemArray.java :Arrays.sort(a);利用這個現成的方法進行排序。
chapter7:
Circle.java ,
Course.java(一個模擬課程的類),
Seeds.java(通過種子獲取隨機數)
StackOfIntegers.java :該函數模擬了一個整數stack的功能.
chapter8:
CheckPalindrome.java :判斷一個數列是不是回文數.
CountEachLetter.java :實現輸出一段字符串中各個字母出現的次數
ReadData.java :讀取文件,利用scanner 來讀取,注意把input流close掉
WriteData.java :利用PrintWriter 輸出文件。
chapter9:
1、通過此例可以看出構造函數調用的順序,首先調用父函數的無參的構造函數!
chapter10:
GenericSort.java :該類的功能是實現數組的排序。
TestCalendar.java :該類測試了calendar類的使用
chapter11:
Rational.java :有理數的基本運算,分數形式顯示,用“/”
chapter12:
gui方面的程序。showLayout.java,ImageIcon,panels,swingCommonFeature.等。
chapter13:
仍然是gui方面的。label ,messagePane,等。
chapter14:
gui方面的,有動態時鍾,MovableMessagePanel (可以移動的文本,根據鼠標的運動)
KeyboardPanel(用上下左右鍵控制一個字母,注意在main方法中,一定要setFoucus,方可移動)
chapter15:
gui方面的程序。MultipleWindowsDemo(統計字母出現的次數,並用圖表顯示)
radioButton,checkBox等。
chapter16:
applet用於網頁的小應用,不過用瀏覽器試了一下,總是用安全問題,或者報classNotfindError.
chapter17:
異常處理。throws,throw, try ...catch...finally..
chapter18:
java的輸入輸出流,binary I/O.
chapter19:
recursion.遞歸的思想。TowersOfHanoi,漢諾塔的例子。