工程一旦變大,隨之而來的就是許多想象不到的過程。一個(gè)一萬個(gè)類的java工程,全部編譯一次的時(shí)間大約是20分鐘。如果不去掉這個(gè)該死的勾,每次重新打開eclipse,第一次運(yùn)行都要重新編譯,一天浪費(fèi)的時(shí)間就是半個(gè)多小時(shí)到一個(gè)小時(shí)不等。
要求數(shù)列[1,2,3]子集,結(jié)果應(yīng)該如下(順序無關(guān)):
[[],[1],[1,2],[1,2,3],[1,3],[2],[2,3],[3]]
如果用C語(yǔ)言求解,在CSDN上找到別人的代碼如下
1 #define N 4
2 #include <stdio.h>
3 int used[N]={0};//加上
4
5 void output()
6 {
7 int i;
8 for(i=0;i<N;i++)if(used[i])printf("%d ",i+1);
9 printf("\n");
10 }
11
12 void f(int i)
13 {
14 if(i>=N)
15 {
16 output();
17 return;
18 }
19 f(i+1);
20 used[i]=1;
21 f(i+1);
22 used[i]=0;//加上
23 }
24
25 void main()
26 {
27 f(0);
28 getchar();
29 }
如果是Haskell呢?(不包括空集)
1 subsets :: [a] -> [[a]]
2 subsets [x] = [[x]]
3 subsets (x:xs) = [x] : [x:i|i<-s]++ s
4 where s = subsets xs
除去聲明就三行還可以縮減到2行。且含義清楚。Haskell果然是一個(gè)研究算法最好的語(yǔ)言。
在Netbeans.tv下發(fā)布了一個(gè)新的視頻,sun說以后數(shù)據(jù)庫(kù)中的表就可以直接綁定到Swing的組件中了。并且給出了演示視頻,感覺很強(qiáng)大,不僅僅是列表,連文本框,按鈕全部都有。并且還演示了添加一個(gè)拖動(dòng)組件來通過拖動(dòng)獲得1-10的整數(shù)作為評(píng)分欄的值。
整個(gè)技術(shù)當(dāng)然是基于JPA持久層。整個(gè)視頻的時(shí)間是5分多鐘。
下面是視頻的地址
http://www.netbeans.org/kb/60/java/swing-app-beans-binding-screencast.html
http://mediacast.sun.com/details.jsp?id=4029
如此的迅捷,完全是Hibernate不能相比的。
我個(gè)人疑惑的只是:綁定JPA和Swing?
看來JPA果然是支持J2SE,用Swing開發(fā)需要用到數(shù)據(jù)庫(kù)的程序的時(shí)候,可以變得相當(dāng)?shù)姆奖恪T囅胍幌掠肑PA訪問SQLite數(shù)據(jù)庫(kù)來構(gòu)建一個(gè)桌面程序。
之前還在慢慢看Hibernate,不過去了Hibernate的主頁(yè),Hibernate對(duì)于JPA和annotation更加是是否的推崇至極。最近JavaFX的發(fā)布,粗略的看過,覺得JavaFX下開發(fā)圖形界面空前的簡(jiǎn)單,而且也可以放入Swing的組件。
這也意味著,以后不僅僅是Web,連客戶端程序,和Applet,JavaFX都可以通過JPA敏捷開發(fā)。