前六篇主要講了一些J2se方面的經驗和感受, 眼下Java應用范圍已經被J2ee占據(jù)了相當大的一塊領域,有些人甚至聲稱Java被J2ee所取代了。不知道大家如何來理解所謂的J2ee (Java2 Enterprise Edition),也就是Java企業(yè)級應用?
考試大的觀點是,技術的發(fā)展是順應世界變化的趨勢的,從C/S過渡到B/S模式,從客戶端的角度考慮企業(yè)級應用或者說電子商務領域不在關心客戶端維護問題,這個任務已經交給了任何一臺PC都會有的瀏覽器去維護;從服務器端的角度考慮,以往C/S中的TCP/IP協(xié)議實現(xiàn)載體ServerSocket被Web Server Container所取代,例如大家都很熟悉的Tomcat、JBoss、WebLogic等等?傊磺械霓D變都是為了使得Java技術能更好的為人類生產生活所服務。
直接去學J2ee跳過J2se行否?是肯定不贊成的,實際上確實有人走這條路,正是由于J2se的基礎很牢固,才會導致在J2ee學習的道路上順風順水,知識點上不會有什么迷惑的地方。舉個簡單的例子吧:
下面這兩種寫法的區(qū)別:
ArrayList list = new ArrayList(); //筆者不說反對,但至少不贊成
List list = new ArrayList(); //筆者支持
良好的習慣和意識是任何時候都應該針對接口編程,以達到解耦合和可擴展性的目的。下面就以接口開始進入J2ee的世界吧:
1. J2ee與接口
每一個版本的J2ee都對應著一個確定版本的JDK,J2ee1.4對應Jdk1.4,現(xiàn)在比較新的是JDK5.0,自然也會有J2EE 5.0.其實筆者一直在用的是J2EE1.4,不過沒什么關系,大家可以下任何一個版本的J2ee api來稍微瀏覽一下。筆者想先聲明一個概念,J2ee也是源自Java,所以底層的操作依然調用到很多J2se的庫,所以才建議大家先牢牢掌握J2se 的主流技術。
J2ee api有一個特點,大家比較熟悉的幾個包java.jms、javax.servlet.http、javax.ejb等都以interface居多,實現(xiàn)類較少。其實大家真正在用的時候百分之六十以上都在反復的查著javax.servlet.http這個包下面幾個實現(xiàn)類的api函數(shù),其他的包很少問津。筆者建議在學習一種技術之前,對整體的框架有一個了解是很有必要的,J2ee旨在通過interface的聲明來規(guī)范實現(xiàn)的行為,任何第三方的廠商想要提供自己品牌的實現(xiàn)前提也是遵循這些接口定義的規(guī)則。如果在從前J2se學習的道路上對接口的理解很好的話,這里的體會將是非常深刻的,舉個簡單的例子:
public interface Mp3{
public void play();
public void record();
public void stop();}
如果我定義這個簡單的接口,發(fā)布出去,規(guī)定任何第三方的公司想推出自己的名字為Mp3的產品都必須實現(xiàn)這個接口,也就是至少提供接口中方法的具體實現(xiàn)。這個意義已經遠遠不止是面向對象的多態(tài)了,只有廠商遵循J2ee的接口定義,世界上的J2ee程序員才能針對統(tǒng)一的接口進行程序設計,最終不用改變代碼只是因為使用了不同廠商的實現(xiàn)類而有不同的特性罷了,本質上說,無論哪一種廠商實現(xiàn)都完成了職責范圍內的工作。這個就是筆者想一直強調的,針對接口編程的思想。
考試大的觀點是,技術的發(fā)展是順應世界變化的趨勢的,從C/S過渡到B/S模式,從客戶端的角度考慮企業(yè)級應用或者說電子商務領域不在關心客戶端維護問題,這個任務已經交給了任何一臺PC都會有的瀏覽器去維護;從服務器端的角度考慮,以往C/S中的TCP/IP協(xié)議實現(xiàn)載體ServerSocket被Web Server Container所取代,例如大家都很熟悉的Tomcat、JBoss、WebLogic等等?傊磺械霓D變都是為了使得Java技術能更好的為人類生產生活所服務。
直接去學J2ee跳過J2se行否?是肯定不贊成的,實際上確實有人走這條路,正是由于J2se的基礎很牢固,才會導致在J2ee學習的道路上順風順水,知識點上不會有什么迷惑的地方。舉個簡單的例子吧:
下面這兩種寫法的區(qū)別:
ArrayList list = new ArrayList(); //筆者不說反對,但至少不贊成
List list = new ArrayList(); //筆者支持
良好的習慣和意識是任何時候都應該針對接口編程,以達到解耦合和可擴展性的目的。下面就以接口開始進入J2ee的世界吧:
1. J2ee與接口
每一個版本的J2ee都對應著一個確定版本的JDK,J2ee1.4對應Jdk1.4,現(xiàn)在比較新的是JDK5.0,自然也會有J2EE 5.0.其實筆者一直在用的是J2EE1.4,不過沒什么關系,大家可以下任何一個版本的J2ee api來稍微瀏覽一下。筆者想先聲明一個概念,J2ee也是源自Java,所以底層的操作依然調用到很多J2se的庫,所以才建議大家先牢牢掌握J2se 的主流技術。
J2ee api有一個特點,大家比較熟悉的幾個包java.jms、javax.servlet.http、javax.ejb等都以interface居多,實現(xiàn)類較少。其實大家真正在用的時候百分之六十以上都在反復的查著javax.servlet.http這個包下面幾個實現(xiàn)類的api函數(shù),其他的包很少問津。筆者建議在學習一種技術之前,對整體的框架有一個了解是很有必要的,J2ee旨在通過interface的聲明來規(guī)范實現(xiàn)的行為,任何第三方的廠商想要提供自己品牌的實現(xiàn)前提也是遵循這些接口定義的規(guī)則。如果在從前J2se學習的道路上對接口的理解很好的話,這里的體會將是非常深刻的,舉個簡單的例子:
public interface Mp3{
public void play();
public void record();
public void stop();}
如果我定義這個簡單的接口,發(fā)布出去,規(guī)定任何第三方的公司想推出自己的名字為Mp3的產品都必須實現(xiàn)這個接口,也就是至少提供接口中方法的具體實現(xiàn)。這個意義已經遠遠不止是面向對象的多態(tài)了,只有廠商遵循J2ee的接口定義,世界上的J2ee程序員才能針對統(tǒng)一的接口進行程序設計,最終不用改變代碼只是因為使用了不同廠商的實現(xiàn)類而有不同的特性罷了,本質上說,無論哪一種廠商實現(xiàn)都完成了職責范圍內的工作。這個就是筆者想一直強調的,針對接口編程的思想。