Time of Update: 2018-12-08
當我試用ObjectSpaces時,ObjectSpaces竟然能夠調用只有私人建構函式的類。例如:Class A{private A() {}}ObjectSpaces能夠建立A的執行個體,我剛看到的時候,吃了一驚,呵呵……
Time of Update: 2018-12-08
對於Singleton模式的類,有一部分代碼是相同的,是否能夠通過泛型來實現? 以下是現在想到的有缺陷的一個方式。以下方式的缺陷是,MySingletonClass必須 擁有預設的public的建構函式。大家是否有更好的方法?(以下代碼基於C#
Time of Update: 2018-12-08
Hibernate 3作了一些改進,改進了一些原來很顯而易見的缺點。例如加了抽象文法樹,但是在Hibernate 3.0 Beta1中,感覺還是有些不大成熟。從代碼可以看出,Hibernate 3.0 Beta1的HQL AST使用了antlr,我向來不大喜歡這種使用yacc、antlr等產生的文法分析和AST。ast部分的代碼是josh提供的,看來gavin並不熟悉文法分析等編譯技術,ast是否能夠很好發揮作用,現在還難說...在ObjectSpaces中,提出了兩種查詢分類:Object
Time of Update: 2018-12-08
MS SQL Server中,有NEWID函數,返回的資料類型為UniqueIdentifier,長度為36。Oracle中,有SYS_GUID函數,返回資料類型為char,長度為32。DB2中,沒有產生GUID的函數,有一替代的函數generate_unique,返回的資料類型為CHAR FOR BIT,長度為13。SYBASE中,也有NEWID()函數,返回的資料類型為char,長度為36。評述,GUID在保證資料記錄Primary
Time of Update: 2018-12-08
這裡有Microsoft提供的一些代碼塊,也許能夠對你開發有所協助。http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/Anch_EntDevAppArchPatPrac.asp以前在編寫.NET應用程式時,我自己開發的訪問資料庫的工具類,就參考過其中的Data Access Application Block。當時的感覺時,Data Access Application
Time of Update: 2018-12-08
用戶端程式應用無意發現的一個類package javax.swing;public abstract class SwingWorker<T, V> implements RunnableFuture<T> { }也就是,一些並發相發的設計模式,已經應用在用戶端程式設計中。我沒有對swing關注更多,只是覺得預想中的趨勢開始出現了。Exchanger重寫了,支援N
Time of Update: 2018-12-08
前年還在開發.NET產品,我那時候編寫一個C#指令碼解釋引擎,遇到一個問題是,Type.GetType()方法無法擷取尚未裝載類型。這些天,在閱讀一些相關的代碼時,得知了一種較為完整的方法,共用如下: internal static Type FindTypeInCurrentDomain(string typeName) { Type type = null; //如果該類型已經裝載 type = Type.GetType(typeName); if
Time of Update: 2018-12-08
if語句的代碼風格,分兩大類:第一類1、關鍵字if後面有空格2、二元運算式左右有空格3、每個大括弧,單獨佔一行4、else關鍵字單獨佔一行if (a > b){ // }else{ // }評述,我推薦在C#中使用這種寫法。我覺得這種寫法比較優雅,容易閱讀。第二類1、關鍵字if後面有空格2、二元運算式左右有空格3、大括弧放在上一句的右邊if (a > b) { // } else { // }也會有人在左括弧的右邊,右括弧的左邊,分別添加空格。如下if ( a
Time of Update: 2018-12-08
由於DES不再安全,現在都流行使用AES密碼編譯演算法替代DES,Rijndael是AES的實現。我從網上找到了很多Rijndael的java實現代碼,我用了其中的一個,並且寫了一個工具類,使得更方便使用它。http://files.cnblogs.com/jobs/Rijndael.rarRijndael_Util.java是我寫的,使用方法如下:import mit.Rijndael.Rijndael_Util;String strKey = "欲練神功揮刀子宮";String plainT
Time of Update: 2018-12-08
前段時間,KINGDEE作為一個通過J2EE相容性測試的J2EE應用伺服器供應商,參加JavaOne大會。項目結束,有空餘時間了,今天看了一些Java One會展的資料,其上介紹JDK 1.5發布Release版本的時間是9月30日。現在JDK 1.5已經是Beta 2,我已經使用,穩定性和向下相容性都很不錯。如果JDK 1.5正式版本按時交貨,那麼Java支援泛型就走在C#前面了。我粗略看了一遍JDK 1.5中的泛型,覺得還不錯,和C#的功能差不多,有些地方還覺得要比C#強一些。Bruce
Time of Update: 2018-12-08
我已經不止一次聽人說O-R Mapping的技術已經很成熟了,事情真的是這樣的嗎?以前我跟人說,我要最佳化現有的O-R Mapping引擎,提高速度,朋友告訴我,O-R Mapping是一種很成熟的技術了,沒什麼好研究的。我沒有反駁,當我找到更好的方法把現有的O-R Mapping最佳化,提高數倍的效能後,另外一個朋友知道這件事後,跟我說,O-R Mapping是一個很成熟的技術,你能夠提高數倍的速度,原來的設計一定很爛。在我看來,他們的想法都不正確。O-R Mapping一直以來存在一個難題,
Time of Update: 2018-12-08
Apache的BCEL庫,文檔很少,例子也很簡單。動態構建類的工作,要求的只是並不是熟練使用BCEL類庫本身,而是要對java的class結構瞭解。我對java的pcode也不熟悉,但是我曾經做過大量的.NET的反編譯工作,兩者類似,所以我用BCEL也不覺得困難。我提供一個例子,這裡例子是使用BCEL建立類的執行個體,而不是使用反射。如下:IFactory.javapublic interface IFactory { public Object newInstance(); }Fi
Time of Update: 2018-12-08
Yukon,MS SQL Server 2005的codename,其最大的特性就是內建CLR,MS為此而炒作。以下我談談我的看法:1、其實這並不是一個新或者先進的技術。其他主流的資料庫,都內建JVM,Oracle 8i、DB2 7.1,SYBASE都內建JVM,Oralce和DB2都是若干年前就內建JVM了,SYBASE具體什麼時候支援,我還沒查相關的資料,反正肯定走在MS SQL Server前面。2、與標準越走越遠。ISO/IEC 9075標準的草案中,其中Part 13是SQL
Time of Update: 2018-12-08
有人問我要一些工作流程相關的資料,我乾脆就寫了一篇隨筆,對入門者也許有協助。工作流程聯盟:http://www.wfmc.org/工作流程聯盟在工作流程領域,威望不高的
Time of Update: 2018-12-08
原來的blog是:http://www.blogcn.com/user9/szujobs/index.html由hBifTs 介紹,才得知有這麼一個好地方。於是昨天把原來的文章遷移過來,其中一些文章有點舊了,寫了有一陣子了。我的朋友都叫溫少,畢業自深圳大學,現任職於金蝶軟體深圳研發中心。我最近一年都是在Java環境下開發。在此之前,曾有大約三年的.NET開發經驗,曾經對ASP .NET做過比較徹底的分析,希望對ASP
Time of Update: 2018-12-08
字串,最初在C中是指一個char數組。在.NET和Java,語言本身內建String的類型,String一個不可變得類型,每次修改,都返回新的執行個體。以下我討論關於String類型的一些常見用法。1、判斷是否Null 字元串//判斷是否為null,或者長度是否為0if (str == null || str.Length == 0){ //do something }//判斷是否為null,並且長度是否為0if (str != null && str.Length !=
Time of Update: 2018-12-08
架構師?一定是開發人員的職業發展方向嗎?兩年前,也很希望自己能夠成為一個軟體架構設計師。後來,慢慢就失去了興趣,甚至很不喜歡架構師這個詞。架構師通常是,最大程度利用現有成熟的技術完成產品目標。但在我看來,這意味著妥協,抑制創新,而我恰恰是,一個憑激情和衝動來完成一些挑戰性任務,以對現有產品在效能、功能進行大幅度改進的一個人。架構師通常協調不同的人的設計,達成一種妥協,一種平衡又或取捨。儘管架構師通常對產品的發展,對項目的成功能夠起很大的作用,但是,我想在未來的幾年內,我還有能力創造的時候,不會刻
Time of Update: 2018-12-08
在密碼學裡,有一種理想的加密方案,叫做一次一密亂碼本(one-time pad)。one-time pad的演算法有以下要求:1、密鑰必須隨機產生2、密鑰不能重複使用3、密鑰和密文的長度是一樣的。one-time pad是最安全的密碼編譯演算法,雙方一旦安全交換了密鑰,之後交換資訊的過程就是絕對安全的啦。這種演算法一直在一些要求高度機密的場合使用,據說美國和前蘇聯之間的熱線電話、前蘇聯的間諜都是使用One-time
Time of Update: 2018-12-08
對.NET的一些模組,包括ASP .NET、ADO .NET、COM+等以前曾經使用過的模組,最近有了一些看法,隨手寫下:ASP .NET很棒,從擴充性、創新性、效能都很好。我認為這是.NET Framework中設計和實現最好的模組了。ASP .NET由於會把Page編譯成代碼,然後再編譯成DLL,速度很快。在Server Event、Server Control方面,ASP .NET是一個偉大的創新!不過在此要澄清一點,由於大所屬ASP
Time of Update: 2018-12-08
有朋友要我介紹一些.NET平台下的工具和類庫。我整理了一下,如下:1、反編譯工具。大多數.NET的DLL並沒有附帶原始碼,因此,你必定需要一個反編譯協助工具輔助。Reflectorhttp://www.aisto.com/roeder/dotnet/2、實現測試驅動開發的工具。測試驅動,TestCase和TODO List結合,這是被證明十分有效開放方式。在.NET平台下,你需要一個工具:NUnit。值得一提的是,NUnit最初模仿JUnit,現在在某些方面,作的比JUnit還要好。http:/