CSDN向來是以娛樂精神出名的。有網友曾笑談:“當我無聊,當我猥瑣的時候,上CSDN,總是能找到組織。”這話基本沒錯。
曾經數次導演編程語言PK的CSDN,今天又發表了篇很娛樂很有導火索的文章
作者很娛樂地寫了堆代碼來驗證Java不比C語言快,留言的高手們也很娛樂地來繼續聲討。
孰是孰非我也不關心,Java和C的快慢以前也層寫過一些所謂的計算程序比較過,JVM的Hostspot機制,在這種小打小鬧的“測試”下確實威力巨大。有時還真的會比完成相同計算任務的C程序快。但是不要忘了真刀真槍的環境,大型應用光一個GC就足可讓Java落后C寫的本地代碼一大截!
無聊無聊
posted @
2007-06-06 22:39 murainwood 閱讀(264) |
評論 (0) |
編輯 收藏
高級接口封裝變成了底層接口,需求幾天之內就能完全變個樣,真是奇跡!
剩下一個月不到了,咬咬牙,邊干活邊寫論文吧。
Dido這幾天也很累,每天短信哄她睡覺,很讓人心疼的女孩兒。
posted @
2007-06-06 20:08 murainwood 閱讀(211) |
評論 (0) |
編輯 收藏
口袋里僅剩下20塊零五毛的時候,突然發現了錢的重要。
于是給人做了兩個小程序,前后總共大概花了三天,拿了1000塊到手。學院還欠自己600塊的項目補助。不知道何時才能到賬上。一向不愿意計算口袋里的錢,這回終于窘迫起來。
賺了點小米,畢業還有一個月不到,先撐過去。晚上和人吃飯,笑談一個局域網流量計費的活兒。開玩笑說一周時間,優惠價2000。怕要真有活兒,一周時間搞不定吧。說大話容易,做起來是另外回事。Dido說我有時喜歡說大話,我承認。
論文寫了七千字,繼續努力。
上海,我來了。雖然第一份工作并沒有想象中的好,但是,會硬著頭皮撐下去。生活給的是挑戰,喜歡挑戰。
posted @
2007-06-05 01:25 murainwood 閱讀(229) |
評論 (0) |
編輯 收藏
? 631所的項目已經開始了兩個月了.現在還是在做運行代理這一模塊.我算是搞核心編碼吧.被JNI,Socket,Thread,RMI整得暈乎著呢.
? 沒有考試壓力,沒有就業壓力.一切都平靜得很.每天睡六小時.兩杯咖啡(早晨中午各一杯).三天一包煙.中午是兩節玉米外加一大片菠蘿.兩天BT一部電影.
?? 一天上班7個半小時,晚上看書3小時.喜歡現在的寧靜.寧靜得如水一樣.
?
posted @
2007-01-13 12:58 murainwood 閱讀(234) |
評論 (0) |
編輯 收藏
三方協議寄出去了,沒正式回到手里,學院沒蓋章之前,還是有些小小的不放心.^_^,畢竟回上海的機會太難得了.
上海不是我家,可對我而言,對于一個遠在西北求學的人而言,至少是家門口了那天打電話告訴媽媽,聽得出來,她非常高興.
現在才發現自己沒有想象中那么豁達,以為很多事情能放得開.以為天下之大,到處可以容身.是的,天下是很大,可是我能容身的地方卻不是如此.總有張網,心里一張網把我網住. 記得有人說過,牢籠是自己造的. 很有道理,但是我卻愿意囚禁在這籠子里.
一片沒邊際的天,有幾個人真正敢去接受?
打定主意回去,未來怎么樣,我沒法去想. 最起碼,回去,能給未來一個模糊可能性,我的要求不高.知足了.
看著辦吧,一切都如田野里的百合,自然就會開的.
我所要做的,只是去呼吸,去汲取,去曬太陽!
posted @
2006-11-19 06:09 murainwood|
編輯 收藏
今天開始復習專業課,無聊的宣講會或招聘會一律不參加!
posted @
2006-10-21 06:19 murainwood 閱讀(252) |
評論 (0) |
編輯 收藏
編程求解: 運動員打靶,10發子彈命中90環(每分成績為0到10環不等)
???????????????? 求可能情況的總數
解法一:
?#include <stdio.h>
#include <stdlib.h>
int f(int n, int m)
{
?int fn=0,i;
?if(m<0||m>10*n) return 0;
?if(n==1) return 1;
?for(i=0;i<=10;i++)
?fn+=f(n-1,m-i);
?return fn;
}
int main()
{
?int n,m;
?printf("Please enter n and m:");
?scanf("%d%d",&n,&m);
?printf("\n%d發打中%d環有%d種可能.\n",n,m,f(n,m));
?system("PAUSE");
?return 0;
}?
解法二:
?#include"stdio.h"
int main(){
int num =1,i;
for(i=1;i<=10;i++)
num = num *(9+i)/i;
printf("%d",num);
}
個人觀點:
? 計算機是一門和數學相關的學科,隨著這門學科的發展,這種"本質"似乎被弱化了.解法1是很普通的方法,一般人都是這種思路.而解法二則是從數學角度考慮.簡潔,快速.
上次去神碼筆試,碰到一題
?? :給定一個數,如7899,把各位數值相加7+8+9+9=33,3+3=6,用這種方法計算機下去,求最后得到的個位數
我給出的解法:
#include "stdio.h"
int main(){
???int i;
???scanf("%d",&i);
???printf("%d",i%9==0?9:i%9);
?? return 0
}//~end?
?
posted @
2006-10-15 18:15 murainwood 閱讀(312) |
評論 (1) |
編輯 收藏
有6個英文字母,a,b,c ,d,e,f
?從中任意取N個(N<=6)來排列.
已知 a 只能與 b 相連,?
???????? b不能和e,f相連
?????????c不能和a相連
???????? d不能和 a ,e相連
???????????f 不能和?a,b相連
請打印出字母f或b 在末尾的組合順序,用Java實現
我的解答:
??? import java.util.*;
/**
?*
?* @author ShenXiaoliang
?*
?*/
public class DemoGraph {
?
?final static int VERTICE=6;
?
?private ArrayList<String> patheSet=new ArrayList<String>();
?
?private String[] ver={"a","b","c","d","e","f"};
?
?private int[][] graph=new int[6][6];
?
?private String path="";
?
?private boolean[] isVisit=new boolean[VERTICE];
?
?
?public DemoGraph() {
??
??initiGraph();
??for(int index=0;index<VERTICE;index++)
??depthSearch(index);
??show();
??
?}
?
?private void initiGraph(){
??graph[0][1]=1;
??graph[1][0]=1;
??graph[1][2]=1;
??graph[1][3]=1;
??graph[2][1]=1;
??graph[2][3]=1;
??graph[2][4]=1;
??graph[2][5]=1;
??graph[3][1]=1;
??graph[3][2]=1;
??graph[3][5]=1;
??graph[4][2]=1;
??graph[4][5]=1;
??graph[5][2]=1;
??graph[5][3]=1;
??graph[5][4]=1;
?}
?
?private void depthSearch(int start){
??
??isVisit[start]=true;
??path+=ver[start];
??if(path.charAt(path.length()-1)=='f'||path.charAt(path.length()-1)=='b') patheSet.add(path);
??for(int index=0;index<VERTICE;index++)
???if(graph[start][index]==1&&isVisit[index]==false)
????depthSearch(index);
???else continue;
??path=path.substring(0,path.length()-1);
??isVisit[start]=false;
?}
?
?
?private void show(){
??for(String pa:patheSet)
???System.out.println(pa);
?}
?/**
? * @param args
? */
?public static void main(String[] args) {
??// TODO Auto-generated method stub
??new DemoGraph();
?}
}
?????????
posted @
2006-10-12 00:43 murainwood 閱讀(219) |
評論 (0) |
編輯 收藏
i bought a durain in the supermarket,smelling terrible.
i thought about durain for time,not because i miss the test of it .just for curiosity。so ugly ,so smelly and so expensive.why so many persons love this strange fruit? is it really do delicious ?
today, i bought one.hehe.
well,i've no idea to deal the prickly,hard "stone".so it is reasonable to ask the worker of the supermark to get it . The flesh of durain is milk white with a little yellow,just like the ice cream for its softness. the feeling is good.
?i put a piece of the "cream" into my mouth,so carefully and nervous . wow ,the smell is still terrible,but the taste is unexpected delicious. soft,sweet,smooth.
?really good!
posted @
2006-10-04 01:39 murainwood|
編輯 收藏
Ubuntu is really a charming distribution of GUN/Linux . I've noticed it two months ago. The live CD instaills very easily and the "face" is beautiful . it is interesting that the X of Linux abroad is mostly Gnome while the domestic is KDE .well ,KDE looks more flamboyance for its class-style look . Gnome is simplicity comparatively. Why ? May be the people who use Linux aborad miss their Unix ,Hehe . Unix looks simplicity as well .
?Kubuntu is based on KDE ,it is the extending project of the Ubuntu ,seems less important than Dubuntu . But? frankly speaking ,Kubuntu looks more lovely
posted @
2006-10-02 03:22 murainwood|
編輯 收藏
? i feel a lot about the importance of English these days.The foreign corporations and the top domestic companies ask for excellent skill of English. i am so soory now?and i should learn my English well .
? last weekend , we talked ablout if time back up for four years ,what we would do in the future 4 years .it is the very topic .some guy said he would find a girl firend ,while the other said he would not touch the on-line game . for me ,i said i would keep away from the C++ and devote myself to learing English?.and i said i had wasted a lot time on?some courses .
? most of us?will regret something in the past four years . we can not catch the gone time?.but i can try my best to?make good use?time nowaday .
?
?
posted @
2006-10-01 00:12 murainwood|
編輯 收藏
華為筆試題:計算字符串“010111001100....”中‘0’和‘1’連續出現的次數。
#include<iostream>;
void main() {
???char *charArray="01000111100011100111100001";
???int max[2]?? ?={0,0};
???int count[2]? ={0,0};
? while(*charArray){
??????
? int?? index???? =*charArray-'0';
? count[index]++;
??count[index^1] =0;
? if(count[index]>max[index])
?????? ?max[index]=count[index];
? charArray++;
? }
?
?std:cout<<"Max times of 0 is"<<max[0]<<std:endl;
?std:cout<<"Max times of 1 is"<<max[1]<<std:endl;
}
//~:end the codes
程序代碼的藝術化,呵呵
posted @
2006-09-26 03:57 murainwood 閱讀(362) |
評論 (0) |
編輯 收藏
自己想的一道題,算是30%原創吧?
String a=new String("Hello");
? a+="World";
?問:a的內容最后是什么?
???????? 這兩個語句,共生成了幾個Java對象?
簡單不?看樣子非常簡單吧,呵呵。
第一問:a(確切地說a引用的內容)是HelloWorld
?
第二問: 兩個語句,一共生成了幾個對象?
????看第一個語句,說實話,用這種方式初始化String,實在是代碼垃圾。這先不管啦。這個語句是老生長談,一個或兩個對象。
??? 為何?第一次執行時創建了二個, 一個為字面量"Hello"(它本身是一個String對象), 一個為new String("Hello")(它是通過new創建的, 功能上和字面量"foo"完全一樣, 但卻是另一個對象).
第二次執行時, 只創建一個, 即new String("Hello"), 這是因為: "Hello"作為String字面量, 是存在于String Pool里面的, 第二次使用它時, 直接指向原有的String, 而不再創建新的String; 但new String("Hello")卻每執行一次都創建一個新的,完全一樣的String對象.
???第二個語句呢?
???? 3個對象。
???? 首先是“World”,毋庸質疑。
???? 那么然后呢?注意了,String是final類,不可改變。平時我們寫Java會有個錯覺,stringA+stringB就以為是前者尾巴接上后者腦袋。的確,在C/C++里就是如此。一點兒錯都沒有。
??? 但是Java不是,Java設計者為了更多方面的考慮,他們把String設計成了final。
??? 看一下JVM匯編指令吧
? 0:?aload_0
?? 1:?invokespecial?#1; //Method java/lang/Object."<init>":()V
?? 4:?return
static void inti();
? Code:
?? 0:?new?#2; //class java/lang/String
?? 3:?dup
?? 4:?ldc?#3; //String Hello
?? 6:?invokespecial?#4; //Method java/lang/String."<init>":(Ljava/lang/String;)V
?? 9:?astore_0
?? 10:?new?#5; //class java/lang/StringBuilder
?? 13:?dup
?? 14:?invokespecial?#6; //Method java/lang/StringBuilder."<init>":()V
?? 17:?aload_0
?? 18:?invokevirtual?#7; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
?? 21:?ldc?#3; //String Hello
?? 23:?invokevirtual?#7; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
?? 26:?invokevirtual?#8; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
?? 29:?astore_0
?? 30:?return
}
仔細看一下我做的標記,JVM給我們生成了一個StringBuilder類。(我用的是JDK5,舊版本是StringBuffer類,單單這一點小改動就能讓Java的速度提高很多)。讓后用append方法載入Hello和World兩個String的引用(明確地說轉化成字符數組)。
當載入完成后,StringBuilder實例調用toString,生成一個新的String實例(暫時稱為TempString)。
?最后把引用a指向TempString
總結:兩句語句總共生成了4個或5個Java類實例
PS:Java中沒有指針實在是太不方便了。特別是在操作原始數據類型的時候。個人認為Java應該在這點上學學C#。指針不是洪水猛獸,對優秀程序員而言,指針是編程中的一種享受。
??????? 希望“海豚”(Java7)能出現指針吧---很不現實,還是等開源后的Java版本吧
posted @
2006-08-14 03:18 murainwood 閱讀(508) |
評論 (4) |
編輯 收藏
下學期會有找工作這類麻煩的事情,不過不管怎么說,還是以好好學習為主吧。
?1.學一種操作系統,Solaris,FreeBSD,Linux三者選一,至少達到熟練使用的程度。
?2.繼續學習Java,鞏固深入Java基礎,JVM,反射,JNI,JDBC,
?3.學會一種Web框架,一種數據庫持久框架
?4.放棄C++,復習鞏固深入C
posted @
2006-08-11 14:49 murainwood 閱讀(196) |
評論 (0) |
編輯 收藏
Stack 和Heap的差別,上次華為研究生筆試題就考過。C語言的我很清楚:
?Stack: automatic variables within functions
? Heap: global variables (storage class external), and static variables
簡而言之,最大的不同是:前者是函數變量的空間,后者是程序變量的空間
另外,Stack上分配內存是安全的。而Heap上分配內存則沒那么爽了。調用malloc分配內存,是在Heap上開辟空間。一定要注意釋放。否則老是memory leak
?
昨天有人問我JVM中的Stack和Heap的差別,當時心不在焉地照搬C語言敷衍了事。
中午起床,沒事閑著看帖子。無意中想起這個問題,在Google搜索了一番。發現昨天的回答出了問題:
“?It is useful to know that these two different kinds of memory exist in Java. Stack memory is the program's memory, and heap memory resides outside of the program.”
Stack是程序內存,Heap內存存在于程序之外。這樣子看起來和C語言中地Heap有些像誒(C語言中的Heap也是在mian()之外的)。再仔細看看
Stack memory stores primitive types and the addresses of objects. The object values are stored in heap memory.
類實例存在于Heap。類實例的的指針在Stack中存放。難怪JVM沒有text segment ,在Stack就囊括了text segment。
這樣做的好處,就是為了實現Java的垃圾回收機制。任何的類對象實例都在Heap中,在Stack中有它們的引用。當所以的線程都不在需要某個引用時,JVM的那個資源回收線程就會把該實例從Heap當中清楚掉。
文章告訴我,回收線程要做全局的檢測來確定某個實例是否已經“無用”了。這樣子,我們可以在代碼上做些工作,來給回收線程加速。
Test t = new Test();
?t.someAction();
?// all done
?t = null;
實例t不再有用時,就把他置為null,告訴JVM:你不用在Stack和Heap之間自己校驗啦,我已經做好了標記,放心回收吧。
小結:Stack: Primitive data types(primitive types), the addresses of objects(=references).
??????????????????????? Heap:? objects.
前者:基本類型和實例地址(引用),后者:類實例
posted @
2006-07-31 16:28 murainwood 閱讀(743) |
評論 (2) |
編輯 收藏
這是家執著的公司,在我心目中,她遠比“特立獨行”的蘋果要偉大得多。現在的蘋果,是一名衣著怪異的流行歌手,在舞臺上耍cool。那么Sun,就是名失意的求道者。
祝Sun一路走好,一個承載著計算機業先賢們夢想的公司。
posted @
2006-07-31 15:44 murainwood 閱讀(176) |
評論 (0) |
編輯 收藏
? 發發牢騷,自從課設做了SWT /JFace的客戶端應用軟件,感覺超好。優美的代碼,清晰的結構,典雅的布局,簡潔的事件機制,SWT太迷人啦。不愧為IBM的杰作,Java桌面開發的新貴。可惜就是沒人用。不就是多了和平臺相關的dll文件和幾個Jar資源包嘛,批處理寫得熟溜得人才不嫌麻煩呢,咯咯。
?? Swing嘛,怎么說你好呢,你得結構是很清晰,論MVC的分離性,確實我覺得比SWT做得優秀些。可是你冗長的代碼,麻煩的事件相應機制,有些讓人不習慣的布局,特別是奇怪的界面....不是偶說你,偶不想理你啦。
?
?? Java的GUI程序本來,我本來就不打算深究。精通一個SWT,了解一個Swing就夠啦
? 扯上個無關的,MFC,我越了解你就越討厭你,越明白你就越惡心你。還好,當初沒有誤入歧途,把你當成寶貝(反正我估計基本不做桌面軟件,^_^)
posted @
2006-07-31 06:12 murainwood 閱讀(782) |
評論 (0) |
編輯 收藏
沒事可干,花了半小時做完了3到意法半導體的筆試題。C語言,極簡單的算法罷了,全是記事本敲,然后g++編譯。
溫習C語言還是很必要滴。荒廢了好久,我一直喜歡用C語言的底層思維來考慮Java,Java沒有“指針”,我是一直很不爽的。
? 意法半導體好歹也是家不錯的公司啊?出的C語言算法題目怎么連華為的都不如?不過上次參加學院華為那個筆試,人家是特招研究生的。俺混進去給人做參考,感覺非常不錯。可惜最后沒留下個假名,手機號碼也沒寫,唉...
? 最丟人的還是那次法國湯姆遜,連OSI七層網絡都忘了。好好吸取教訓
posted @
2006-07-31 06:01 murainwood 閱讀(252) |
評論 (0) |
編輯 收藏
??? 項目第二階段,管理客戶端和管理服務器。架構C/S,技術RMI
??? 今天上午做了一個簡單的測試系統,用來測試前兩天所編寫的構件:寫了一遠程服務器,一個命令行客戶端。OK,編譯時也沒出錯。
??? 然而運行起來,可怕的事情發生了:先前寫的實體類無法傳送給客戶端。程序拋出了異常。仔細觀察,發現是產生了對象無法序列化的IO異常。
??? RMI底層通過TCP協議進行通訊,ObjectInputStream和ObjectOutputStream來負責對象的輸入和輸出。實在是不明白,以前做RMI系統實驗的時候,根本沒遇到這種序列化異常:傳String就傳String,傳Vector就傳Vector。
?? 猜想應該是我寫的那些類無法序列化的緣故。參考了API文檔,發現這個東西:MarshalledObject,可以對其構造方法的對象進行序列化(說穿了就是變成字節流)。
? 迅速改造了測試程序,OK,能穿對象了。但是.....序列化以后無法反序列化!天,類對象實例全部變成了組毫無意義的字節數組。
? 應該有其他的辦法,SUN的Java文檔實在不能和MSDN相比,太過于簡單啦。
? 經過3個小時的資料查閱和測試,終于找到了種正確而且異常簡單的方法:對先前的代碼進行簡單的重構:讓他們統統實現java.io.Serializable接口。只改一行代碼,全部解決!
? ^_^
posted @
2006-07-24 14:44 murainwood 閱讀(278) |
評論 (0) |
編輯 收藏
這么多年來一直喜歡著那個女孩。我們是很好的朋友。喜歡她的樣子,她的笑容,她的性格和她的言談。
這么多年,似乎也喜歡過其他的人,然而就像煙霧一樣,或長或短的時間里,慢慢消散。仿佛只留下淺淺的痕跡
就這樣一直喜歡著她好了,也許能夠變成永恒
posted @
2006-07-21 22:49 murainwood 閱讀(140) |
評論 (0) |
編輯 收藏
http://www.apache.org
著名的Apache基金會官網,經常看看很有收獲
http://www.eclipse.orgEclipse基金會官網
http://saloon.javaranch.com翻譯過來叫Java會客廳比較好吧
http://www.matrix.org.cn/不用說了,國內比較好的Java論壇
http://www.csdn.net國內最大的IT開發者站點....太浮躁,很喧囂
http://www.mindview.net/Bruce Eckel的網站,很值得一看
posted @
2006-07-21 20:29 murainwood 閱讀(172) |
評論 (0) |
編輯 收藏