認識 Lambda/Closure 在 CodeData 網站撰寫的一系列認識 Lambda/Closure 文章。認識 Lambda/Closure(1)從 JavaScript 的函式物件談起認識 Lambda/Closure(2)什麼是 Closure?認識 Lambda/Closure(3)Python 對 Lambda/Closure 的支援認識 Lambda/Closure(4)從 Scala 中借鏡認識
命令式至函數式隨記(六) English從函數式得到的,並不只是將命令式外觀的程式碼重構為函數式外觀的程式碼,重點在於 對問題思考方式的重構,從而影響演算法的設計。下面這個程式是個解 排 列組合 的例子:def rotated(list, i, j): lt = list[i:j + 1] return list[0:i] + lt[-1:] + lt[0:-1] + list[j
命令式至函數式隨記(五) English來點輕鬆的好了!要把一組list中的資料全部加1怎麼寫?def addOne(list): result = [] for ele in list: result.append(ele + 1) return result改成函數式呢?def addOne(list): return [] if list
命令式至函數式隨記(四) English在命令式至函數式隨記(三)中最後談到foldRight,本來想說有機會再談,不過剛好有個範例,想說就先隨便記好了,有這之前,建議先看看:List 處理模式抽象資料型 態與 代數資料型態 前幾篇都用Python作示範,那這邊就繼續用它作示範好了,首先想想Python中兩個list的串接怎麼作?用+!像是[1, 2, 3] + [4, 5, 6]如果要在一個list前
命令式至函數式隨記(三) English函數式的思考中心就是分解問題,舉例來說,計算list長度命令式如下:def length(list): c = 0 for i in list: c += 1 return c 將之改為函數式是許多介紹函數式的文章會有的範例:def length(list): return 0 if list ==
命令式至函數式隨記(二) English使用迴圈循序處理List中元素的問題,基本上都可轉為遞迴解,不必使用計數器,只要有辦法取List的head與tail就可以了。如果迴圈中又有迴 圈,基本上就是處理兩個問題了,函數式就是強迫你要分解問題。舉例來說:def toPFix(infix, isPost): expr = infix if isPost else infix[::-1] stac
命令式至函數式隨記(一) English這一陣子練習函數式,隱隱約約發現從命令式過渡到函數式有一些模式可循,但還沒很能抓得住,在這邊略作筆記一下,另一方面,最近在看 MapReduce,也是隱隱約約感覺,這種模式,有助於使用 MapReduce 時對資料的分析,總之這是一個典型的例子之一,來試著收集更多的例子,看看能不能歸類出一些模式 ... XD將命令式更改為函數式,需要乾淨點的程式碼與對流程的敏感度,典
現代程式庫的多重角色 對於應用程式開發產能的影響,程式語言只是個出發點,現代程式庫不僅是可重用功能的中心,還扮演了規範架構流程、限制語言功能、擴充程式語義、模擬典範(Paradiam)等多重角色,有時體質不良的程式語言,因為有良好的程式庫約束了先天不良元素,反而使得原本不被看好的語言廣為接受而獲得重用。 可重用功能的集中處 基於開發程式時的可維護性與彈性,程式開發過程會不斷消弭重複性。傳統程式庫的角色,就是將重
受限多重繼承的演進 觀察到兩個以上類別具有重複定義時,可考慮將重複部份抽出至新類別,使用新類別的方式之一是透過繼承,這是由下而上的繼承思考方式;如果觀察到類別已定義某些功能,為了避免在新類別中重複定義,方式之一就是繼承該類別,這是由上而下的繼承思考方式。 無論是直接支援多重繼承或提供受限多重繼承,思考重點都在於由下而上抽取出的重複,或是由上而下繼承的定義是否過於具體。 解決多重繼承複雜問題的規則過於複
程式設計者的技術文筆與寫作 程式設計者是工程師?科學家?工匠或藝術家?Robert C. Martin在《Clean Code》書中第一章即談到:「We Are Authors」。Bruce Eckel在2009年於Artima Weblogs寫了一篇文章〈Writing Software is Like ... Writing〉。《Coders at Work》書中,多位大師也曾提及文筆表達能力對程式設計者的重要性。
程式語言的特性本質(四)往數學領域抽象化的函數程式設計 許多程式語言融合了多種程式設計典範(Paradigm),除了為人熟知的結構化、物件導向等典範外,逐漸也可見函數程式設計(Functional programming)的蹤影,相對於物件導向將問題具體為物件互動的世界,函數設計則往數學領域抽象化,將問題逐項分解為函數定義。 以數學形式定義問題 函數式程式設計(以下簡稱為函數式程設)經常與指令式程式設計(Imperative progr
程式語言的特性本質(三)從消弭重複性看封裝、繼承、多型 程式設計在某種程度上都是在消弭重複性,以提高程式可維護性來控制軟體複雜度。若從消弭重複性來瞭解物件導向中封裝、繼承、多型,就可具體瞭解這些基本原則的作用。 封裝消弭了物件的重複行為 假設你用類別基礎的Java設計僅具有name與balance的Account類別,而同事拿來建立多個物件,像是建立acct1、並為acct1.name與acct1.balance指定值,建立acct2並
程式語言的特性本質(二)類別與原型的物件管理學 類別基礎(Class-based)與原型基礎(Prototype-based)為物件導向的不同風格。前者在設計時先強調物件的種類畫分,之後根據畫分的類別,建立具相同行為與結構的實例(Instance);後者先著重物件個體的行為描述,日後隨著程式演進再來擔心分類等問題。 更多內容:http://www.ithome.com.tw/itadm/article.php?c=73566
程式語言的特性本質(一)靜態語言與動態語言的信任抉擇 型態系統是對底層位元組的抽象化,開發者只要瞭解型態,就可得知如何以高階操作處理資料,開發者選擇程式語言的第一步,就是如何從語法得知型態資訊,也就是決定選用靜態語言或動態語言。 具體來說,靜態語言是指變數是否帶有資料儲存型態,反之則為動態語言。 靜態語言的變數本身帶有型態資訊。例如底下的Java範例中,text宣告為String,就僅可參考String實例,若嘗試參考至其它型態,則會引發編譯
Hello World 的試煉 類似Hello World的探索過程,可引導出語法層面外的許多議題 第一個Hello World範例的出現,據稱是在Brian Kernighan寫的《A Tutorial Introduction to the Language B》中,此後成為許多程式語言教學的第一個範例程式。隨著技術演進,Hello World的示範漸漸有另一種意涵,如何用最簡潔程式碼來顯示Hello Wor
速食文化下的技術本質 作份早餐,多少因素要考慮?光是烤個土司、煎個荷包蛋、煮個咖啡,就得事先買好土司、蛋跟咖啡,隔天得早起料理,用餐完得清洗餐具,想到這麼麻煩,許多人寧可就近到早餐店、點份餐,中餐或晚餐大概也是類似方式解決,在速食文化下,誇張卻常見的現象,是在便利商店就能解決三餐,不少便利商店更以此作為廣告噱頭。 Hello World的本質 當面對的問題太複雜時,人們就會開始傾向簡化問題,幫助自己從複雜問
Scala 起步走 從一些簡單的語法開始,了解 Scala 的許多特性,所以就算是起步走,東西也夠多了。基本環境與指令簡單的小程式可以使用 scala 指令,編譯的事就交給 scalac,編譯想快點就用 fsc。 指令互動環境scala指令scalac與 fsc資料、變數、操作
「常見程式題目」第三版 更新紀錄:第一版:最初的版本,主要以 C 語言實作為主,當時還是使用 CHM 格式製作,開啟有些問題吧!第二版:將文件改為 HTML 格式,修改了 Java 實作部份,加入更多的題目。第三版:修改了大部份的 C、Java 程式實作,並加入了 Python、Scala 實作。對於一些常見的題目,我整理在我的網站上,現在我也將之打包好了,這些題目是熟悉演算法與資料結構的常見題目
山寨版 Java 深度歷險 之所以叫作山寨版 Java 深度歷險,其動機之一,就是彷照 Java 深度歷險,嘗試將一些市面上的書較少談及的東西寫出來。至於章節順序安排,則是我過去經驗中,發現最多人所忽略而引發問題的一些東西,有些問題其實都很基本,但也許是缺少訓練,或是在學習、運用的過程中,欠缺旁人的提點,而自顧自的用自己的想法實現而導致,這也是為何取名叫「Java 本質部份」的原因,因為那些東西是基本,但
EJB3 入門文件 先來寫幾個簡單的範例,看看 Session Bean、Message-Driven Bean 長什麼樣子,怎麼封裝 EJB-JAR、EAR 等。 Session Bean 在 EJB3 中寫 Session,簡單的由 Annotation 就可以設定了,並可以利用容器的資源注入來簡化程式撰寫。 第一個 Session Bean(單機客戶端)使用 @
Windows 下第一個 GTK 程式 在這邊說明一下如何在Windows作業系統之下撰寫、編譯GTK,GTK使用GLib、cairo、Pango、ATK、GTK+、gettext-runtime、libpng、libjpeg、libtiff與zlib,所以您必須也取得這些套件,在GTK官方網站的 Windows Download 中可以取得,最簡單的方法是取得all-in-one bundle。 以下說明安
GtkTreeView 在看這篇之前,請先看過 GtkComboBox 與 GtkListStore,由於以Model-View的方式設計,您可以在不修改Model的情況下,為Model換上另一個顯示的外觀(View),例如為 GtkComboBox 與 GtkListStore 範例中建立的GtkListStore換上GtkTreeView的外觀。 具體來說,也就是該範例中的createModel()
GtkComboBox 與 GtkTreeStore 接續 GtkComboBox 與 GtkListStore,有了其中的觀念,接下來要使用GtkTreeStore就不是難事了,只是多了父子關係的部份。 若想要製作有階層的樹狀結構,則要搭配GtkTreeStore來使用,主要的差別在於,GtkTreeStroe具 有父子節點關係,也因此在加入子節點時,必須指明父節點為誰,加入節點可以使用gtk_tree_store_append()函式,設
GtkComboBox 與 GtkListStore GtkComboBox可以建立下拉選單,以供使用者選取項目,GtkComboBox實現了Model-View模式,可提供豐富的項目類型與表現方式,但這也提高了程式撰寫時的複雜度,為此,GtkComboBox提供了gtk_combo_box_new_text()以建立一 般常用的文字下拉清單功能之GtkComboBox,若想要設定下拉清單中的文字項目,則可以使用gtk_combo_box_appen
GTK 入門文件 先來嘗試一下幾個簡單的 GTK 程式,並初步了解一些核心特性。 Hello!World! Orz..第一步,當然是先 克服 GTK 的安裝問題,然後來個簡單的 Hello!World! Orz... Ubuntu 下安裝 GTK 第一 個 GTK 程式 GTK 的物件導向架構
GTK 的物件導向架構 GTK 基本上是使用 C 語言來撰寫,即使C語言本身不支援物件導向,但GTK在架構上運用了一些方式,使得使用GTK時可以支援許多物件導向的概念。 在物件導向的封裝特性上,GTK以結構(structure)的方式來模擬類別,事實上GTK也直接稱這些結構為類別,以建構GtkWindow的程式碼為例: window = gtk_window_new(GTK
Ubuntu 下的哈囉!GTK+! 由於GTK基本上主要以C語言來撰寫,您必須有C編譯器,Ubuntu預設安裝好後就有gcc了,不過缺少必要的Header file,您可以在文字模式下,安裝build-essential套件,例如: sudo apt-get install build-essential 安裝完成後,可以寫個基本的C語言程式: hello.
需要回顧嗎?2007? 我其實是一個不怎麼念舊的人,我收藏舊東西的本事很差(我老婆就比我厲害多了),就算收藏了某些東西,久了一定佈滿灰塵,再久一些就會覺得沒什麼用了,更久的話,哪天大掃除就會被我清理掉。應該這麼說,所有的回憶其實都在我的腦海中,有人說記憶會淡忘,還是留下事物好,以後可以從這些事物中,找出已經被遺忘的記憶,但我覺得,要是記憶真的被遺忘了,就算舊事物留的再多,哪天看到了,其實也不會有任何的感動。我相信,所有
简体良葛格学习笔记 花了一些时间,作了一些繁体转简体的工作,不依赖Google Translate,有兴趣的,可以至这边观看…http://caterpillar.onlyfun.net/GossipCN/index.html
面對技術...是熱情還是生活? 在擔任講師的日子中,接觸過不少學員。 就有些資訊人員來說,面對技術,總有種近乎狂熱的熱情,當看到某種技術可以解決什麼樣的問題時,那種急切想了解與推廣的心情,就像個傳教士般,深怕別人不 了解該項技術的好與可以解決的問題。 然而,對於大部份的資訊從業人員來說,其實,技術本身,就只是一項技能,一個糊口飯吃的東西,對於新技術,他們也許還會覺得多一事不如少一事。 帶著熱情甚至狂熱上課,有時會有兩極化的
網頁聊天室 網頁聊天的基本原理很簡單,在使用者發送訊息給伺服端時,同時取回新的聊天訊息,在使用者沒有發送訊息,同時查詢伺服端是否有新的訊息,並顯示在頁面中。 不過重點就在於取得訊息或重新取得訊息的方式,在過去,是在讓瀏覽器定時重新整理網頁,每一次除了新的訊息之外,往往伴隨著大量重複的HTML標籤等內容。
自動表單填寫 當使用者在您的網頁上填寫資料時,如果您的網站資料庫中已經有該使用者的資料,那麼您可以貼心的在他填寫完部份欄位後,根據這些欄位,自動幫他顯示其它相關的資料,以避免他仍要填寫重複的資料。 舉個例子來說,有個員工管理的網頁:
試用Google翻譯為簡體中文 在我的網頁中,「線上文件」旁試用Google簡體中文轉換…希望對看簡體的學習者有所幫助…http://caterpillar.onlyfun.net/Gossip/index.html 線上文 件 - 翻譯成簡體中文
第一個Acegi 程式 - 表單網頁 完成了 第一個Acegi 程式 - 設定文件 中的文件設定,接下來完成必要的表單網頁,首先是/acegilogin.jsp: acegilogin.jspAcegi 範例網頁 - 登入登入範例應用程式!j_acegi_security_check" method="POST"> 名稱: j_username value=> 密碼: j_
第一個Acegi程式 - 設定文件 首先請先至Acegi官方網站,下載Acegi程式庫,在撰寫這份教學文件之時,所使用的版本是1.0.3。 表 Acegi相關類別之間的依賴關係,可以藉由IoC容器來協助建立,在這邊您可以使用 Spring 的IoC容器功能,您可以在下載的Acegi檔案中,找到acegi-security-sample-tutorial.war,將之使用解壓縮軟體解 開,可以在WEB-INF/lib下,找
Ajax 動態清單 除了要求使用者按下按鈕之外,還有什麼更直覺的方式可以取得資料?以這個觀點出發,可以想到許多非同步請求回應的使用方式,例如,當使用者選擇書籍類別完 成後,觸發onchange事件,自動將使用者的選擇送出,取得下一個選單的資料並呈現在網頁上,這個功能在桌面應用程式上很常見,但在Web應用程式來 說,以前並不常見。 例如您設計的網頁如下: DynamicListeEx-1.htm
Ajax 輸入驗證 表單資料的驗證可以分為客戶端驗證與伺服端驗證,為了安全起見,避免客戶端驗證被跳過,伺服端驗證往往是必須的。 當使用者在表單中輸入資料時,在過去往往只能靠使用者完成資料輸入,再按下「送出」按鈕,才可以進行伺服端驗證,現在可以利用非同步請求方式,在使用者某 些欄位輸入完成之後,就以非同步方式在背景發送請求給伺服端進行驗證,若有誤再以DOM更新頁面訊息,使用者可以即時發現先前錯誤的輸入
JSON傳送與接收 在 JSON 中我們已經介紹過其基本格式,與XML相同,JSON只是一個文字格式,只要客戶端與伺服端可以剖析它,就可以利用它作為傳送資料的格式,但它是JavaScript的核心特性之一,所以在JavaScript中使用JSON作為資料格式很方便,您還可以在 http://www.json.org 找到處理JSON的程式庫,包括客戶端JavaScript library與伺服端的library。
XML傳送與接收 Ajax客戶端與伺服端之間,可以使用XML作為資料傳送、溝通的格式,Ajax客戶端若要發送XML,基本上就是將XML作為字串,塞在POST本體中發送,例如: HandleXMLEx-1.jsvar xmlHttp;function createXMLHttpRequest() { if(window.XMLHttpRequest) { xmlHttp =
發送請求參數 如果在請求時,要連帶發送相關參數,若是使用GET的方式發送參數,則將參數附加在URL上即可,例如:var urlAndqueryString = "yourApp?name=justin&age=30";xmlHttp.open("GET", urlAndqueryString); xmlHttp.send(null);如果發送請求時使用POST,那麼將要發送的資料塞到send()中即可,
Hello! Ajax! 來撰寫您第一個Ajax程式,使用非同步的方式向伺服端取得文字檔案,並加以顯示,首先請準備一個HTML網頁: HelloAjaxEx-1.html Hello! Ajax! Examples... 這個HTML網頁會取得JavaScript檔案,而按下按鈕後,會執行startRequest()函式,JavaScript檔案如下所示: HelloAja
XMLHttpRequest 在Ajax應用程式中,如果是Mozilla/Firefox/Safari中,可以透過XMLHttpRequest來發出非同步請求,如果是在IE6 或IE先前版本,則是使用ActiveXObject來發出非同步請求,為了各個不同瀏覽器間的相容性,必須進行測試可取得XMLHttpRequest 或ActiveXObject,例如:var xmlHttp;function createXMLHtt
AJAX Ajax這個名詞是由 Jesse James Garrett 提出,在他發表的 Ajax: A New Approach to Web Applications 這篇文章中談到 Google Suggest 與 Google Maps 所使用到的技術,是他們在 Adaptive Path 中稱之為Ajax的新方法:Google Suggest and Google Maps are two
连csdn.net终於快一些了… 自从上次大地震之后,连过来csdn.net就出奇的慢,更别说要登入后台显示相关的编辑功能了。今天试著连了一下,速度竟然快许多了,感觉还比没地震前快些呢!结果发现,Blog系统作了不小的更新了
[影音教學]Java SE 6從安裝到API查詢 下載後會有兩個檔案,您的瀏覽器必須有Flash player,然後按下HTML檔案即可觀看 # 如何下載 JDK # 如何安裝 JDK # 如何設定 Path # 第一個 Java 程式 # 如何設定 Classpath # 如何查詢 API 文件
DWR 入門與應用(三) 來寫個AJAX版的聊天室吧!先看看直接使用AJAX要如何做到,首先需要一個簡單的聊天室Servlet… 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
DWR 入門與應用(二) 假設您要從資料庫中查詢出一些字串,然後填寫到表單的下拉選單中。 例如一個示意的Java程式如下: 12345678 package onlyfun.caterpillar; public class Option { pub
善于遗忘 在获取知识的同时也必须善于遗忘。 这句话看来似乎是相互矛盾的,既然我的目的是在于获得知识,又为何又要去遗忘所学到的事物呢?事实上,除了心理层面的事物之外,人本身就是一个善于遗忘的东西,尤其是知识方面的东西,例如语言,如果学习了一个新的语言而不去用它,久了自然就会遗 忘,即使是母语也是一样,了解人是善于遗忘的这个事实很重要,您学得了一件新的事物,也许现阶段您会使用它,或许只是先学习等待将来的应用,如
DWR 入門與應用(一) Java 開發人員與網頁設計人員的橋樑 DWR…呃!我懶得寫簡介了…直接來看看可以做什麼吧!… 請先到 http://getahead.ltd.uk/dwr/ 下載 dwr.jar,放到WEB-INF/lib下… 負責處理客戶端請求,並呼叫Java物件的是DWRServlet,DWR其實也有些Model 2的味道,只是View的這一層比較弱,因為放到客戶端的JavaScript應用程式中… 在we
Spring 對 Lob 的支援... 如果要將 將檔案存入資料庫,我們在JDBC中可以使用CLOB與BLOB來分別針對文字檔案與二進位檔案進行儲存,Spring中可以透過JdbcTemplate來處理CLOB與BLOB。 舉個例子來說,假設您的MySQL資料庫表格如下: 12345
写作的用与趣 我个人喜欢写作,每当学习一件新的事物而有所领悟之后,总会尝试着将这些领悟写作出来。 尝试写作有许多功用与乐趣,虽然明白有的人一提起笔(就现在而言是一打起字)来,就有如千斤重担,不知下一个字该说什么,然而个人认为这只是一开始 而已,在这个计算机信息化与网络化的时代,用文字来表达自己的想法并不是什么困难之事,平常在讨论区总可以看到一些人发表自己的想法,其实写作就是将这些零 碎的想法组织起来再化为文字而
培养抽象思考能力 数学被视为科学之母,可以被广泛的应用其它学科,要讨论为何数学这么一个纯綷的学科具有什么样的特质,使其可以被使用于各个领域,其实一个最简单的回答就是:「抽象」。抽象这两个字,究其字面意义要行解释,本身就很「抽象」,我们举个实际的例子:「1 + 1 = 2」就是抽象,您可以具体的在数字后面加上单位,像是苹果、狗、人等具体的事物,就因为 1 + 1 = 2是抽象,所以它可以解答无数的两个个体相加的结果,
我只是一个小讲师、小作者。。。 面对学员时,我有时总会跟学员说的是,我只是一个小讲师,在这边将我所知道的事,一一的讲给还不知道的学员,我比拥有相同知识的其它人相比,多的只是更多的授课技巧。我也总会跟学员说,我是有出Java的书,但那不表示我是Java的专家,我有出Spring的书,但那不表示我就是Spring的大师。我只是觉得,在讲解那些知识时,我的书中的方式,会让一些人入门快一些。我觉得,教会一群入门的学员,让他们拥有自我探索
第一个Hibernate with Annotation程式 Hibernate是ORM的解决方案,其底层对数据库的操作依赖于JDBC,所以您必须先取得JDBC驱动程序,在这边所使用的是MySQL,所以您必须至 MySQL® Connector/J 取得MySQL的JDBC驱动程序。 接下来至 Hibernate 官方网站 取得Hibernate 3.2、Hibernate Annotations 3.2。 您必须安装JDK 5.0才可以使用Hibernat
阙疑 每个人在生活上必然都有这样的经验,一个难解的问题,在百思不得其解之后,不得以暂时放下一段时间,却在某个不经意的时候灵光乍现、晃然大悟。这是生活上的经验,俗话也有这么的说法:「不要钻牛角尖。」这样的说法在某些程度上,就是要我们暂时停止将焦点放在问题本身,藉由其它的想法来刺激问题解答的产生。学习不免遇到难解的疑问,若然能够将生活上如上的经验转化为学习的一种方式,则对于难解的疑问,我们往往能够寻找出另一
作好提问的功课 在学习的过程中,总难免会遇到一些问题,对于每个学习者来说,他们总是燥进的,面对问题时总会想要寻求立即的解答,有经验的学习者通常会知道克制这种想 法,他们会先自行就以往的经验、可获得解答的各种管道中先试着解决问题,在反复寻求之后即使没有得到解答,他们也厘清了问题的所有,有经验的学习者在提出 问题时,总是能点出问题的核心,甚至令参与解决问题的人们有「大哉问」的感觉。 对于没有经验的学习者而言,面对问
世界杯外的广告 – 为第n次练习干杯 世界杯2006,我偶而会看看,我并不是个专业球迷,对于谁打的好谁打的不好,虽心中有些评价,但太过于个人观感,实在不适合提出来见笑。 然而,在观看球赛的同时,我对于一个广告却特别深刻。广告的画面中,有个球门,有个轮胎挂在上头,接着的画面是,为了将球踢进轮胎中,一球又一球的练习。 在下一个画面,突然轮胎不见了,取而代之的是真正的球赛进球画面,全场欢欣鼓舞,广告的旁白是 – 为第n次练习干杯
Spring技术手册 – 一本扣门砖 由于我是个记性很差的人,对于学过的东西,最后总只能记得些大致轮廊,而对于一些技术性的细节,我总是无法记得。我的网站上有许多的文件,这些文件主要就在记录着这些细节。 Spring Framework一般人的感觉是很难、很复杂,但事实不然,基本上,如果想掌握Spring,打稳Java SE基础,并进一步了解一些设计模式的概念,在入门Spring时就不致于遇到太大的障碍,如果
扎根、搜寻、过滤、深读 人类的智能活动长久以来已累积大量的知识与经验,对于现在的人与将来的人来说,学习会变成越来越大的负担,一种自然的演化即是知识的分门别类越来越多、越 来越细,一种是既有的知识已经成熟至相当的程度,它被作为基础,新的知识与经验继续不断的建构于这个基础之上。 然而无论是哪个方式,信息丰富所带来的学习负担是无可避免的,学习确实有方法,然而问题是如何取得学习方法?甚而如何建立您自己的学习方法?没有哪 一个
Spring RMI 支持 RMI是从JDK 1.1开始就出现的API功能,它让客户端在使用远程对象所提供的服务时,就如何使用本地对象一样,然而RMI在使用时必须一连串繁复的手续,像是服务介 面在定义时必须继承java.rmi.Remote接口、服务Server在实作时必须继承java.rmi.UnicastRemoteObject类 别、必须使用rmic产生stub与skeleton等等。 透过org.springfra
不要只读一本书 学习上没有经验的入门者,总是幻想拥有这么一本圣经教材,能够救赎他们离开无知的世界。事实上就我而言,这样的圣经是不存在的,即使在现今的世界中,确实存在着某些人口中赞扬的圣经教材,它们传达了许多经典的知识或观念,而为许多人所推崇不 已,我不能否认那些所谓圣经教材的价值,但那些推崇它们的人们,绝对不只靠着这么一本书就获得救赎。 没有任何的书本是为了单一的学习者而量身订作的,即使是自己为自己所编写
接口与多重继承 在很多时候,常会听别人说,接口(interface)可以达到多重继承的效果,这是怎么回事?其实要讨论这个问题,首先您对于C++中多重继承要先有认识,新手看了书说接口可以达到多重继承,切莫人云亦云,尤其是没有学过C++的新手们,如果您对于C++多重继承想要有所认识,请先看看 多重继承(一)与 多重继承(二)。 Java不能多重继承,但为何说Java中可以使用接口(interface)来达到多
学习岂有无痛之理 旧的一代永远会埋怨新的一代在学习上过于燥进,新的一代拥有更多的管道、更多的媒介更多的资源来学习,旧的一代总是责成新的一代不懂得善用这些他们 过去所没有的资源,能够怪他们吗?人类的创造活动随着创造工具的越来越方便,创造者的角色已经从一些特定的人转移至每个人的身上,从几个例子中可以看到,出版曾经是一些人的特权,而 今日工具的方便与媒介的普及,使得更多的人也能够投入出版的领域,也更能将自身的想法创造
AOP观念与术语 示例下载。AOP全名为Aspect-Oriented Programming,有关于AOP的许多名词术语都过于抽象,单从字面上并不容易理解其名词意义,这边将以之前介绍代理机制的范例来逐一对照以介绍AOP的术语与观念: Cross-cutting concern在DynamicProxyDemo项目的例子中,记录的动作原先被横切(Cross-cutting)入至He
Spring技术手册推荐序 对我这个专职从事教育训练的人来说,最重要的工作,莫过于寻找能够满足各种挑剔客户的优秀讲师,以及官方教材的编写者。因此,当我第一次从网络上浏览了"良葛格的学习笔记"网站之后,就开始对信良兄产生莫大的兴趣,不过当时他人并不在台湾,也因而没有太多的交流。 直到2005年的JavaTwo大会,第一次有机会与他聊聊创作理念,以及对Java技术的看法之后,当下决定,把SUN教育训练中心的Java入门教
关于Spring框架的学习 接触Spring框架差不多快两年多的事,尤记得当时,关于Spring的书籍还不多,而文件分散于网路的各个角落,为了通盘了解Spring,在Google上一遍又一遍的来往收集,拼凑出Spring全图。就技术上而言,我绝不是Spring的真正高手,然而就资讯收集与文字整理的功夫,说我投入很大的心力倒是真的,在学习Spring的过程中,文件收集、实作尝试、观念厘清等,都花上了不少功夫,我将这些功夫的所