目前分類:程式設計 (4)

瀏覽方式: 標題列表 簡短摘要

有陣子的新聞了...

雖然 Google 自己開發了Dalvik Virtual Machine 技術, 但仍然 必免不了 Oracle 控告的命運!

但以Open Source 來說,對於開發者沒有多大影響就好囉..

小綠人... 你真的中招了!


hsinichi 發表在 痞客邦 留言(0) 人氣()

Struts1Struts2的比較

翻譯:zhiyong.tong

出自:Apache Struts 2 Documentation

              http://struts.apache.org/2.x/docs/comparing-struts-1-and-2.html

特性

Struts 1

Struts 2

Action classes

Struts 1要求Action類要擴展自一個抽象基類。

Struts 1的一個共有的問題是面向抽象類編程而不是面向介面編程。

Struts 2Action類實現了一個Action介面,連同其他介面一起來實現可選擇和自定義的服務。Struts 2提供一個名叫ActionSupport的基類來實現一般使用的介面。雖然,Action介面不是必須的。任何使用execute方法的POJO對象可以被當作Struts 2Action對象來使用。

Threading Model

Struts 1 Action類是單例類,因爲只有一個示例麳控制所有的請求。單例類策略造成了一定的限制幷且給開發帶來了額外的煩惱。Action資源必須是綫程安全或者同步的。

Struts 2 Action對象爲每一個請求都實例化對象,所以沒有綫程安全的問題。(實踐中,servlet容器産生許多丟棄的對象對於每一個請求,多於一個的對象並不影響垃圾收集)

Servlet Dependency 

Struts 1Action類依賴於servlet API以爲HttpServletRequestHttpServletResponse作爲參數傳給execute方法當Action被調用時。

Struts 2Action不和容器有關。Servlet上下文被表現爲簡單的Maps,允許Action被獨立的測試。Struts 2Action可以訪問最初的請求和相應,如果需要的話。然而,其他的架構元素減少或者排除直接訪問HttpServletRequest或者HttpServletResponse的需要。

Testability

測試Struts 1的主要障礙是execute方法暴露了Servlet API。第三方的擴展,Struts測試用例,提供Struts 1的集合對象。

Struts 2Action可以通過實例化Action麳測試,設置屬性,然後調用方法。依賴注入的支持也是測試變得更簡單。

Harvesting Input

Struts 1使用ActionForm對象麳捕獲輸入。象Action一樣,所有的ActionForm必須擴展基類。因爲其他的JavaBean不能作爲ActionForm使用,開發者經常創建多餘的類麳捕獲輸入。DynaBeans可以被用來作爲替代ActionForm的類麳創建。但是開發者可以重新描述已經存在的JavaBean

Struts 2 Action屬性作爲輸入屬性,排除第二個輸入對象的需要。輸入屬性可能有豐富的對象類型這些類型有他們自己的屬性。Action的屬性可以通過標簽庫麳訪問。Struts 2也支持ActionForm形式。豐富的對象類型,包含業務或者域對象,可以被當作輸入或者輸出對象麳使用。糢型驅動特性簡化標簽對POJO輸入對象的引用。

Expression Language 

Struts 1整和JSTL,所以它使用JSTL的表達式語言。表達式語言有基本的圖形對象移動,但是相對很弱的集合和被索引的屬性支援。

hsinichi 發表在 痞客邦 留言(0) 人氣()

來寫點有關 程式設計的東西,
由於跟Java比較熟, 就來寫寫收錄有關Java String 的東西.

String 類別中已經提供了將基本資料型態轉換成 String 的 static 方法
也就是 String.valueOf() 這個參數多載的方法。

有下列幾種:
String.valueOf(boolean b) : 將 boolean 變數 b 轉換成字串
String.valueOf(char c) : 將 char 變數 c 轉換成字串
String.valueOf(char[] data) : 將 char 陣列 data 轉換成字串
String.valueOf(char[] data, int offset, int count) :

將 char 陣列 data 中 由 data[offset] 開始取 count 個元素 轉換成字串
String.valueOf(double d) : 將 double 變數 d 轉換成字串
String.valueOf(float f) : 將 float 變數 f 轉換成字串
String.valueOf(int i) : 將 int 變數 i 轉換成字串
String.valueOf(long l) : 將 long 變數 l 轉換成字串
String.valueOf(Object obj) : 將 obj 物件轉換成 字串, 等於 obj.toString()

用法就如:

int i = 10;
String str = String.valueOf(i);
這時候 str 的值"10"

hsinichi 發表在 痞客邦 留言(5) 人氣()

昨天有跟同事聊到一些好玩的東西...

所以自己也來架個站來玩玩...

http://hsinichi.no-ip.org

大概我在家的時候才會開~~~

歡迎蒞臨!


hsinichi 發表在 痞客邦 留言(0) 人氣()