原创 對象導論之Java與Internet(二)客戶端編程

客戶端編程   Web最初的“服務器——瀏覽器”設計是爲了能夠提供交互性的內容,但是其交互性完全由服務器提供。服務器產生靜態頁面,提供給只能解釋並顯示他們的客戶端瀏覽器。基本的HTML(HyperText Markup Lan

原创 對象導論之Java與Internet(一)Web是什麼

Java與Internet   如果Java僅僅只是衆多的程序設計語言中的一種,你可能就會問:爲什麼他如此重要?爲什麼他促使計算機編程語言向前邁進了革命性的一步?如果從傳統的程序設計觀點看,問題的答案似乎不太明顯。儘管Java對於

原创 對象導論之併發編程

併發編程   在計算機編程中有一個基本概念,就是在同一時刻處理多個任務的思想。許多程序設計問題都要求,程序能夠停下正在做的工作,轉而處理某個其他問題,然後在返回主程序。有許多方法可以實現這個目的。最初,程序員們用所掌握的有關機器底

原创 對象導論之對象的創建和生命週期

對象的創建和生命週期   在使用對象時,最關鍵的問題之一便是它們的生成和銷燬方式,每個對爲了生存都需要資源,尤其是內存。當我們不再需要一個對象時,它必須被清理掉,使其佔有的資源可以被釋放和重用。在相對簡單的編程情況下,怎樣清理對象

原创 對象導論之異常處理:處理錯誤

異常處理:處理錯誤   自從編程語言問世以來,錯誤處理就始終是最困難的問題之一。因爲設計一個良好的錯誤處理機制非常困難,所以許多語言直接略去這個問題,將其交給程序庫設計者處理,而這些設計者也只是提出了一些不徹底的方法,這些方法可用

原创 對象導論之容器(二)參數化類型

參數化類型   在Java SE5出現之前,容器存儲的對象都是隻具有Java中的通用類型:Object。單根繼承結構意味着所有東西都是Object類型,所以可以存儲Object的容器可以存儲任何東西。這使得容器很容易被複用。  

原创 對象導論之容器(一)

容器(一)   通常說來,如果不知道在解決某個特定問題時需要多少個對象,或者它們將存活多久,那麼就不可能知道如何存儲這些對象。如何才能知道需要多少空間來創建這些對象呢?答案是你不可能知道,因爲這類信息只有運行時才能獲得。   對於

原创 對象導論之單根繼承結構

單根繼承結構   在OOP中,自C++面世以來就已變得非常矚目的一個問題就是,是否所有的類最終都繼承自單一的基類。在Java中(事實上還包括除C++以外的所有OOP語言),答案是yes,這個終極基類的名字就是Object。事實證明

原创 對象導論之伴隨多態的可互換對象

伴隨多態的可互換對象   在處理類型的層次結構時,經常想把一個對象不當作它所屬的特定類型來對待,而是將其當作其基類的對象來對待。這使得人們可以編寫出不依賴於特定類型的代碼。在“幾何形”的例子中,方法操作的都是泛化(generic)

原创 對象導論之每個對象都提供服務

每個對象都提供服務   當正在試圖開發或理解一個程序設計時,最好的方法之一就是將對象想像爲“服務提供者”。程序本身將向用戶提供服務,它將通過調用其他對象提供的服務來實現這一目的。你的目標就是去創建(或者最好是在現有代碼庫中尋找)能

原创 對象導論之抽象過程

抽象過程   所有編程語言都提供抽象機制。可以認爲,人們所能夠解決的問題的複雜性直接取決於抽象的類型和質量。所謂的“類型”是指“所抽象的是什麼?”彙編語言是對底層機器的輕微抽象。接着出現的許多所謂“命令式”語言(如FORTRAN,

原创 結構性測試

結構性測試 結構性測試是另一種用於表示測試用例的基本方法。爲了與功能性測試形成對比,結構性測試有時叫做白盒(或甚至叫做透明盒)測試,透明盒的比喻可能更恰當,因爲根本差別在於(黑盒的)實現是已知的,並被用來標識測試用例。“看到黑盒內

原创 破解的基本認識

破解的基本認識 如何成爲一個Cracker   要成爲一個Cracker,首先要有一定的彙編語言的知識,並且有一定的軟件和硬件的知識,手頭上有一種以上的調整軟件,如debug或Soft-ice等等。其次就是要有一些輔助工具如pct

原创 產生式系統有哪幾種推理方式?各自的特點?

產生式系統有哪幾種推理方式?各自的特點? (1)正向推理(正向鏈接推理):從一組表示事實的謂詞或命題出發,使用一組產生式規則,用以證明該謂詞公式或命題是否成立。 (2)逆向推理(後像鏈接推理):表示目標的謂詞或命題出發,使用一組產

原创 序列號加密中的數學算法

序列號加密中的數學算法 數學算法一項都是密碼加密的核心,但在一般的軟件加密中,它似乎並不太爲人們關心,因爲大多數時候軟件加密本身實現的都是一種編程的技巧。但近幾年來隨着序列號加密程序的普及,數學算法在軟件加密中的比重似乎是越看越大