<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 30,  comments - 28,  trackbacks - 0
        CSDN向來(lái)是以?shī)蕵?lè)精神出名的。有網(wǎng)友曾笑談:“當(dāng)我無(wú)聊,當(dāng)我猥瑣的時(shí)候,上CSDN,總是能找到組織。”這話基本沒(méi)錯(cuò)。
        曾經(jīng)數(shù)次導(dǎo)演編程語(yǔ)言PK的CSDN,今天又發(fā)表了篇很娛樂(lè)很有導(dǎo)火索的文章

    實(shí)例演示:Java和C語(yǔ)言哪個(gè)更快?

        作者很娛樂(lè)地寫了堆代碼來(lái)驗(yàn)證Java不比C語(yǔ)言快,留言的高手們也很娛樂(lè)地來(lái)繼續(xù)聲討。
        孰是孰非我也不關(guān)心,Java和C的快慢以前也層寫過(guò)一些所謂的計(jì)算程序比較過(guò),JVM的Hostspot機(jī)制,在這種小打小鬧的“測(cè)試”下確實(shí)威力巨大。有時(shí)還真的會(huì)比完成相同計(jì)算任務(wù)的C程序快。但是不要忘了真刀真槍的環(huán)境,大型應(yīng)用光一個(gè)GC就足可讓Java落后C寫的本地代碼一大截!
       無(wú)聊無(wú)聊
       


    posted @ 2007-06-06 22:39 murainwood 閱讀(264) | 評(píng)論 (0)編輯 收藏
      高級(jí)接口封裝變成了底層接口,需求幾天之內(nèi)就能完全變個(gè)樣,真是奇跡!
      剩下一個(gè)月不到了,咬咬牙,邊干活邊寫論文吧。
      Dido這幾天也很累,每天短信哄她睡覺(jué),很讓人心疼的女孩兒。

    posted @ 2007-06-06 20:08 murainwood 閱讀(211) | 評(píng)論 (0)編輯 收藏
        口袋里僅剩下20塊零五毛的時(shí)候,突然發(fā)現(xiàn)了錢的重要。
        于是給人做了兩個(gè)小程序,前后總共大概花了三天,拿了1000塊到手。學(xué)院還欠自己600塊的項(xiàng)目補(bǔ)助。不知道何時(shí)才能到賬上。一向不愿意計(jì)算口袋里的錢,這回終于窘迫起來(lái)。
        賺了點(diǎn)小米,畢業(yè)還有一個(gè)月不到,先撐過(guò)去。晚上和人吃飯,笑談一個(gè)局域網(wǎng)流量計(jì)費(fèi)的活兒。開(kāi)玩笑說(shuō)一周時(shí)間,優(yōu)惠價(jià)2000。怕要真有活兒,一周時(shí)間搞不定吧。說(shuō)大話容易,做起來(lái)是另外回事。Dido說(shuō)我有時(shí)喜歡說(shuō)大話,我承認(rèn)。
        論文寫了七千字,繼續(xù)努力。
        上海,我來(lái)了。雖然第一份工作并沒(méi)有想象中的好,但是,會(huì)硬著頭皮撐下去。生活給的是挑戰(zhàn),喜歡挑戰(zhàn)。

    posted @ 2007-06-05 01:25 murainwood 閱讀(229) | 評(píng)論 (0)編輯 收藏
    ? 631所的項(xiàng)目已經(jīng)開(kāi)始了兩個(gè)月了.現(xiàn)在還是在做運(yùn)行代理這一模塊.我算是搞核心編碼吧.被JNI,Socket,Thread,RMI整得暈乎著呢.
    ? 沒(méi)有考試壓力,沒(méi)有就業(yè)壓力.一切都平靜得很.每天睡六小時(shí).兩杯咖啡(早晨中午各一杯).三天一包煙.中午是兩節(jié)玉米外加一大片菠蘿.兩天BT一部電影.
    ?? 一天上班7個(gè)半小時(shí),晚上看書3小時(shí).喜歡現(xiàn)在的寧?kù)o.寧?kù)o得如水一樣.
    ?
    posted @ 2007-01-13 12:58 murainwood 閱讀(234) | 評(píng)論 (0)編輯 收藏
        三方協(xié)議寄出去了,沒(méi)正式回到手里,學(xué)院沒(méi)蓋章之前,還是有些小小的不放心.^_^,畢竟回上海的機(jī)會(huì)太難得了.
       上海不是我家,可對(duì)我而言,對(duì)于一個(gè)遠(yuǎn)在西北求學(xué)的人而言,至少是家門口了那天打電話告訴媽媽,聽(tīng)得出來(lái),她非常高興.
       現(xiàn)在才發(fā)現(xiàn)自己沒(méi)有想象中那么豁達(dá),以為很多事情能放得開(kāi).以為天下之大,到處可以容身.是的,天下是很大,可是我能容身的地方卻不是如此.總有張網(wǎng),心里一張網(wǎng)把我網(wǎng)住. 記得有人說(shuō)過(guò),牢籠是自己造的. 很有道理,但是我卻愿意囚禁在這籠子里.
       一片沒(méi)邊際的天,有幾個(gè)人真正敢去接受?
     打定主意回去,未來(lái)怎么樣,我沒(méi)法去想. 最起碼,回去,能給未來(lái)一個(gè)模糊可能性,我的要求不高.知足了.
        看著辦吧,一切都如田野里的百合,自然就會(huì)開(kāi)的.
        我所要做的,只是去呼吸,去汲取,去曬太陽(yáng)!
    posted @ 2006-11-19 06:09 murainwood| 編輯 收藏
    今天開(kāi)始復(fù)習(xí)專業(yè)課,無(wú)聊的宣講會(huì)或招聘會(huì)一律不參加!
    posted @ 2006-10-21 06:19 murainwood 閱讀(252) | 評(píng)論 (0)編輯 收藏

    編程求解: 運(yùn)動(dòng)員打靶,10發(fā)子彈命中90環(huán)(每分成績(jī)?yōu)?到10環(huán)不等)
    ???????????????? 求可能情況的總數(shù)

    解法一:
    ?#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發(fā)打中%d環(huán)有%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);
    }

    個(gè)人觀點(diǎn):
    ? 計(jì)算機(jī)是一門和數(shù)學(xué)相關(guān)的學(xué)科,隨著這門學(xué)科的發(fā)展,這種"本質(zhì)"似乎被弱化了.解法1是很普通的方法,一般人都是這種思路.而解法二則是從數(shù)學(xué)角度考慮.簡(jiǎn)潔,快速.
    上次去神碼筆試,碰到一題
    ?? :給定一個(gè)數(shù),如7899,把各位數(shù)值相加7+8+9+9=33,3+3=6,用這種方法計(jì)算機(jī)下去,求最后得到的個(gè)位數(shù)

    我給出的解法:
    #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) | 評(píng)論 (1)編輯 收藏

    有6個(gè)英文字母,a,b,c ,d,e,f
    ?從中任意取N個(gè)(N<=6)來(lái)排列.
    已知 a 只能與 b 相連,?
    ???????? b不能和e,f相連
    ?????????c不能和a相連
    ???????? d不能和 a ,e相連
    ???????????f 不能和?a,b相連
    請(qǐng)打印出字母f或b 在末尾的組合順序,用Java實(shí)現(xiàn)

    我的解答:

    ??? 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) | 評(píng)論 (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| 編輯 收藏
    華為筆試題:計(jì)算字符串“010111001100....”中‘0’和‘1’連續(xù)出現(xiàn)的次數(shù)。

    #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

    程序代碼的藝術(shù)化,呵呵
    posted @ 2006-09-26 03:57 murainwood 閱讀(362) | 評(píng)論 (0)編輯 收藏

    自己想的一道題,算是30%原創(chuàng)吧?
    String a=new String("Hello");
    ? a+="World";

    ?問(wèn):a的內(nèi)容最后是什么?
    ???????? 這兩個(gè)語(yǔ)句,共生成了幾個(gè)Java對(duì)象?

    簡(jiǎn)單不?看樣子非常簡(jiǎn)單吧,呵呵。
    第一問(wèn):a(確切地說(shuō)a引用的內(nèi)容)是HelloWorld
    ?
    第二問(wèn): 兩個(gè)語(yǔ)句,一共生成了幾個(gè)對(duì)象?
    ????看第一個(gè)語(yǔ)句,說(shuō)實(shí)話,用這種方式初始化String,實(shí)在是代碼垃圾。這先不管啦。這個(gè)語(yǔ)句是老生長(zhǎng)談,一個(gè)或兩個(gè)對(duì)象。
    ??? 為何?第一次執(zhí)行時(shí)創(chuàng)建了二個(gè), 一個(gè)為字面量"Hello"(它本身是一個(gè)String對(duì)象), 一個(gè)為new String("Hello")(它是通過(guò)new創(chuàng)建的, 功能上和字面量"foo"完全一樣, 但卻是另一個(gè)對(duì)象).

    第二次執(zhí)行時(shí), 只創(chuàng)建一個(gè), 即new String("Hello"), 這是因?yàn)? "Hello"作為String字面量, 是存在于String Pool里面的, 第二次使用它時(shí), 直接指向原有的String, 而不再創(chuàng)建新的String; 但new String("Hello")卻每執(zhí)行一次都創(chuàng)建一個(gè)新的,完全一樣的String對(duì)象.

    ???第二個(gè)語(yǔ)句呢?
    ???? 3個(gè)對(duì)象。
    ???? 首先是“World”,毋庸質(zhì)疑。
    ???? 那么然后呢?注意了,String是final類,不可改變。平時(shí)我們寫Java會(huì)有個(gè)錯(cuò)覺(jué),stringA+stringB就以為是前者尾巴接上后者腦袋。的確,在C/C++里就是如此。一點(diǎn)兒錯(cuò)都沒(méi)有。
    ??? 但是Java不是,Java設(shè)計(jì)者為了更多方面的考慮,他們把String設(shè)計(jì)成了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

    }

    仔細(xì)看一下我做的標(biāo)記,JVM給我們生成了一個(gè)StringBuilder類。(我用的是JDK5,舊版本是StringBuffer類,單單這一點(diǎn)小改動(dòng)就能讓Java的速度提高很多)。讓后用append方法載入Hello和World兩個(gè)String的引用(明確地說(shuō)轉(zhuǎn)化成字符數(shù)組)。
    當(dāng)載入完成后,StringBuilder實(shí)例調(diào)用toString,生成一個(gè)新的String實(shí)例(暫時(shí)稱為TempString)。
    ?最后把引用a指向TempString


    總結(jié):兩句語(yǔ)句總共生成了4個(gè)或5個(gè)Java類實(shí)例

    PS:Java中沒(méi)有指針實(shí)在是太不方便了。特別是在操作原始數(shù)據(jù)類型的時(shí)候。個(gè)人認(rèn)為Java應(yīng)該在這點(diǎn)上學(xué)學(xué)C#。指針不是洪水猛獸,對(duì)優(yōu)秀程序員而言,指針是編程中的一種享受。
    ??????? 希望“海豚”(Java7)能出現(xiàn)指針吧---很不現(xiàn)實(shí),還是等開(kāi)源后的Java版本吧


    posted @ 2006-08-14 03:18 murainwood 閱讀(508) | 評(píng)論 (4)編輯 收藏
    下學(xué)期會(huì)有找工作這類麻煩的事情,不過(guò)不管怎么說(shuō),還是以好好學(xué)習(xí)為主吧。
    ?1.學(xué)一種操作系統(tǒng),Solaris,F(xiàn)reeBSD,Linux三者選一,至少達(dá)到熟練使用的程度。
    ?2.繼續(xù)學(xué)習(xí)Java,鞏固深入Java基礎(chǔ),JVM,反射,JNI,JDBC,
    ?3.學(xué)會(huì)一種Web框架,一種數(shù)據(jù)庫(kù)持久框架
    ?4.放棄C++,復(fù)習(xí)鞏固深入C
    posted @ 2006-08-11 14:49 murainwood 閱讀(196) | 評(píng)論 (0)編輯 收藏

    Stack 和Heap的差別,上次華為研究生筆試題就考過(guò)。C語(yǔ)言的我很清楚:
    ?Stack: automatic variables within functions
    ? Heap: global variables (storage class external), and static variables

    簡(jiǎn)而言之,最大的不同是:前者是函數(shù)變量的空間,后者是程序變量的空間

    另外,Stack上分配內(nèi)存是安全的。而Heap上分配內(nèi)存則沒(méi)那么爽了。調(diào)用malloc分配內(nèi)存,是在Heap上開(kāi)辟空間。一定要注意釋放。否則老是memory leak
    ?
    昨天有人問(wèn)我JVM中的Stack和Heap的差別,當(dāng)時(shí)心不在焉地照搬C語(yǔ)言敷衍了事。
    中午起床,沒(méi)事閑著看帖子。無(wú)意中想起這個(gè)問(wèn)題,在Google搜索了一番。發(fā)現(xiàn)昨天的回答出了問(wèn)題:
    “?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是程序內(nèi)存,Heap內(nèi)存存在于程序之外。這樣子看起來(lái)和C語(yǔ)言中地Heap有些像誒(C語(yǔ)言中的Heap也是在mian()之外的)。再仔細(xì)看看

    Stack memory stores primitive types and the addresses of objects. The object values are stored in heap memory.

    類實(shí)例存在于Heap。類實(shí)例的的指針在Stack中存放。難怪JVM沒(méi)有text segment ,在Stack就囊括了text segment。

    這樣做的好處,就是為了實(shí)現(xiàn)Java的垃圾回收機(jī)制。任何的類對(duì)象實(shí)例都在Heap中,在Stack中有它們的引用。當(dāng)所以的線程都不在需要某個(gè)引用時(shí),JVM的那個(gè)資源回收線程就會(huì)把該實(shí)例從Heap當(dāng)中清楚掉。

    文章告訴我,回收線程要做全局的檢測(cè)來(lái)確定某個(gè)實(shí)例是否已經(jīng)“無(wú)用”了。這樣子,我們可以在代碼上做些工作,來(lái)給回收線程加速。
    Test t = new Test();
    ?t.someAction();
    ?// all done
    ?t = null;
    實(shí)例t不再有用時(shí),就把他置為null,告訴JVM:你不用在Stack和Heap之間自己校驗(yàn)啦,我已經(jīng)做好了標(biāo)記,放心回收吧。

    小結(jié):Stack: Primitive data types(primitive types), the addresses of objects(=references).
    ??????????????????????? Heap:? objects.
    前者:基本類型和實(shí)例地址(引用),后者:類實(shí)例

    posted @ 2006-07-31 16:28 murainwood 閱讀(743) | 評(píng)論 (2)編輯 收藏
    這是家執(zhí)著的公司,在我心目中,她遠(yuǎn)比“特立獨(dú)行”的蘋果要偉大得多?,F(xiàn)在的蘋果,是一名衣著怪異的流行歌手,在舞臺(tái)上耍cool。那么Sun,就是名失意的求道者。
    祝Sun一路走好,一個(gè)承載著計(jì)算機(jī)業(yè)先賢們夢(mèng)想的公司。
    posted @ 2006-07-31 15:44 murainwood 閱讀(176) | 評(píng)論 (0)編輯 收藏
    ? 發(fā)發(fā)牢騷,自從課設(shè)做了SWT /JFace的客戶端應(yīng)用軟件,感覺(jué)超好。優(yōu)美的代碼,清晰的結(jié)構(gòu),典雅的布局,簡(jiǎn)潔的事件機(jī)制,SWT太迷人啦。不愧為IBM的杰作,Java桌面開(kāi)發(fā)的新貴。可惜就是沒(méi)人用。不就是多了和平臺(tái)相關(guān)的dll文件和幾個(gè)Jar資源包嘛,批處理寫得熟溜得人才不嫌麻煩呢,咯咯。

    ?? Swing嘛,怎么說(shuō)你好呢,你得結(jié)構(gòu)是很清晰,論MVC的分離性,確實(shí)我覺(jué)得比SWT做得優(yōu)秀些??墒悄闳唛L(zhǎng)的代碼,麻煩的事件相應(yīng)機(jī)制,有些讓人不習(xí)慣的布局,特別是奇怪的界面....不是偶說(shuō)你,偶不想理你啦。
    ?
    ?? Java的GUI程序本來(lái),我本來(lái)就不打算深究。精通一個(gè)SWT,了解一個(gè)Swing就夠啦

    ? 扯上個(gè)無(wú)關(guān)的,MFC,我越了解你就越討厭你,越明白你就越惡心你。還好,當(dāng)初沒(méi)有誤入歧途,把你當(dāng)成寶貝(反正我估計(jì)基本不做桌面軟件,^_^)
    posted @ 2006-07-31 06:12 murainwood 閱讀(782) | 評(píng)論 (0)編輯 收藏
    沒(méi)事可干,花了半小時(shí)做完了3到意法半導(dǎo)體的筆試題。C語(yǔ)言,極簡(jiǎn)單的算法罷了,全是記事本敲,然后g++編譯。
    溫習(xí)C語(yǔ)言還是很必要滴。荒廢了好久,我一直喜歡用C語(yǔ)言的底層思維來(lái)考慮Java,Java沒(méi)有“指針”,我是一直很不爽的。
    ? 意法半導(dǎo)體好歹也是家不錯(cuò)的公司???出的C語(yǔ)言算法題目怎么連華為的都不如?不過(guò)上次參加學(xué)院華為那個(gè)筆試,人家是特招研究生的。俺混進(jìn)去給人做參考,感覺(jué)非常不錯(cuò)??上ё詈鬀](méi)留下個(gè)假名,手機(jī)號(hào)碼也沒(méi)寫,唉...
    ? 最丟人的還是那次法國(guó)湯姆遜,連OSI七層網(wǎng)絡(luò)都忘了。好好吸取教訓(xùn)
    posted @ 2006-07-31 06:01 murainwood 閱讀(252) | 評(píng)論 (0)編輯 收藏

    ??? 項(xiàng)目第二階段,管理客戶端和管理服務(wù)器。架構(gòu)C/S,技術(shù)RMI
    ??? 今天上午做了一個(gè)簡(jiǎn)單的測(cè)試系統(tǒng),用來(lái)測(cè)試前兩天所編寫的構(gòu)件:寫了一遠(yuǎn)程服務(wù)器,一個(gè)命令行客戶端。OK,編譯時(shí)也沒(méi)出錯(cuò)。
    ??? 然而運(yùn)行起來(lái),可怕的事情發(fā)生了:先前寫的實(shí)體類無(wú)法傳送給客戶端。程序拋出了異常。仔細(xì)觀察,發(fā)現(xiàn)是產(chǎn)生了對(duì)象無(wú)法序列化的IO異常。
    ??? RMI底層通過(guò)TCP協(xié)議進(jìn)行通訊,ObjectInputStream和ObjectOutputStream來(lái)負(fù)責(zé)對(duì)象的輸入和輸出。實(shí)在是不明白,以前做RMI系統(tǒng)實(shí)驗(yàn)的時(shí)候,根本沒(méi)遇到這種序列化異常:傳String就傳String,傳Vector就傳Vector。
    ?? 猜想應(yīng)該是我寫的那些類無(wú)法序列化的緣故。參考了API文檔,發(fā)現(xiàn)這個(gè)東西:MarshalledObject,可以對(duì)其構(gòu)造方法的對(duì)象進(jìn)行序列化(說(shuō)穿了就是變成字節(jié)流)。
    ? 迅速改造了測(cè)試程序,OK,能穿對(duì)象了。但是.....序列化以后無(wú)法反序列化!天,類對(duì)象實(shí)例全部變成了組毫無(wú)意義的字節(jié)數(shù)組。
    ? 應(yīng)該有其他的辦法,SUN的Java文檔實(shí)在不能和MSDN相比,太過(guò)于簡(jiǎn)單啦。
    ? 經(jīng)過(guò)3個(gè)小時(shí)的資料查閱和測(cè)試,終于找到了種正確而且異常簡(jiǎn)單的方法:對(duì)先前的代碼進(jìn)行簡(jiǎn)單的重構(gòu):讓他們統(tǒng)統(tǒng)實(shí)現(xiàn)java.io.Serializable接口。只改一行代碼,全部解決!
    ? ^_^

    posted @ 2006-07-24 14:44 murainwood 閱讀(278) | 評(píng)論 (0)編輯 收藏
    這么多年來(lái)一直喜歡著那個(gè)女孩。我們是很好的朋友。喜歡她的樣子,她的笑容,她的性格和她的言談。
    這么多年,似乎也喜歡過(guò)其他的人,然而就像煙霧一樣,或長(zhǎng)或短的時(shí)間里,慢慢消散。仿佛只留下淺淺的痕跡

    就這樣一直喜歡著她好了,也許能夠變成永恒
    posted @ 2006-07-21 22:49 murainwood 閱讀(140) | 評(píng)論 (0)編輯 收藏
    http://www.apache.org
    著名的Apache基金會(huì)官網(wǎng),經(jīng)常看看很有收獲

    http://www.eclipse.org
    Eclipse基金會(huì)官網(wǎng)

    http://saloon.javaranch.com
    翻譯過(guò)來(lái)叫Java會(huì)客廳比較好吧

    http://www.matrix.org.cn/
    不用說(shuō)了,國(guó)內(nèi)比較好的Java論壇

    http://www.csdn.net
    國(guó)內(nèi)最大的IT開(kāi)發(fā)者站點(diǎn)....太浮躁,很喧囂

    http://www.mindview.net/
    Bruce Eckel的網(wǎng)站,很值得一看




    posted @ 2006-07-21 20:29 murainwood 閱讀(172) | 評(píng)論 (0)編輯 收藏

    設(shè)置類路徑
    結(jié)構(gòu)
    可通過(guò)對(duì) JDK 工具使用 -classpath 選項(xiàng)(首選方法)或設(shè)置 CLASSPATH 環(huán)境變量來(lái)設(shè)置類路徑。
    ??? C:> jdkTool -classpath path1;path2...
    ??? C:> set CLASSPATH=path1;path2...
    每個(gè) path 以文件名或目錄結(jié)尾,該文件名或目錄取決于將類路徑設(shè)置成什么:
    對(duì)于包含 .class 文件的 .zip 或 .jar 文件,路徑以 .zip 或 .jar 文件名結(jié)尾。
    對(duì)于未命名包中的 .class 文件,路徑以包含 .class 文件的目錄結(jié)尾。
    對(duì)于已命名包中的 .class 文件,路徑以包含“root”包(完整包名中的第一個(gè)包)的目錄結(jié)尾。
    用分號(hào)來(lái)分隔多個(gè)項(xiàng)目。使用 set 命令時(shí),需要省略等號(hào)兩邊的空格(=)。其中 jdkTool 可以為 java、javac、javadoc,等等。有關(guān)詳細(xì)列表,參見(jiàn) JDK 開(kāi)發(fā)工具。
    說(shuō)明
    類路徑告訴 Java 應(yīng)用程序去哪里查找第三方和自定義類 -- 即不是 Java 擴(kuò)展或 Java 平臺(tái)一部分的類。在 JDK 1.2 中,JVM 和其他 JDK 工具通過(guò)依次搜索平臺(tái)庫(kù)、庫(kù)擴(kuò)展和類路徑來(lái)查找類(有關(guān)搜索策略的詳細(xì)信息,參見(jiàn)如何查找類)。
    多數(shù)應(yīng)用程序的類庫(kù)都會(huì)充分利用擴(kuò)展機(jī)制。因此,只有想要加載某個(gè)類庫(kù) (a) 未位于當(dāng)前目錄或其分枝包中 且 (b) 未位于擴(kuò)展機(jī)制所指定的位置時(shí),才需設(shè)置類路徑。

    如果用戶是從舊版本 JDK 升級(jí)而來(lái),則啟動(dòng)設(shè)置可能包括不再需要的 CLASSPATH 設(shè)置。這時(shí)應(yīng)該刪除任何非應(yīng)用程序特定的設(shè)置。有些使用 Java 虛擬機(jī)的第三方應(yīng)用程序可能修改 CLASSPATH 環(huán)境變量以包括它們使用的類庫(kù)。這種設(shè)置可以保留。

    可通過(guò)在調(diào)用 JVM 或其他 JDK 工具時(shí)使用 Java 工具的 -classpath 選項(xiàng)改變類路徑(例如: java -classpath ...)。這是改變類路徑的首選方法。還可通過(guò)使用 CLASSPATH 環(huán)境變量改變類路徑。

    注意:JDK 1.2 缺省類路徑是當(dāng)前目錄。設(shè)置 CLASSPATH 變量或使用 -classpath 命令行開(kāi)關(guān)將覆蓋缺省值,因而如果想要在搜索路徑中包括當(dāng)前目錄,則必須在新設(shè)置中包括“.”。
    類可以存儲(chǔ)在目錄(文件夾)或歸檔文件(例如 classes.zip 或 classes.jar)中。有關(guān)歸檔文件的詳細(xì)信息和類路徑的工作原理,參見(jiàn)本文檔最后的理解類路徑和包名。
    ?
    重要說(shuō)明:JDK 舊版本在缺省類路徑中還包括 <jdk-dir>/classes 項(xiàng)。該目錄僅供 JDK 使用,且不用于應(yīng)用程序類。應(yīng)用程序類應(yīng)該放置在 JDK 外部的目錄。這樣,安裝新 JDK 時(shí)不必需要重新安裝應(yīng)用程序庫(kù)。為了與舊版本的兼容性,使用 <jdk-dir>/classes 目錄作為類庫(kù)的應(yīng)用程序在當(dāng)前版本中仍能運(yùn)行,但不能保證在以后的版本中它們還能運(yùn)行。
    使用 Java 工具的 -classpath 選項(xiàng)
    Java 工具 java、jdb、javac 和 javah 具有 -classpath 選項(xiàng),在工具運(yùn)行時(shí)它將取代缺省類路徑或由 CLASSPATH 環(huán)境變量所指定的類路徑。這是改變類路徑設(shè)置的推薦方法,因?yàn)檫@樣每個(gè)應(yīng)用程序可具有它所需的類路徑而又不會(huì)干擾其他應(yīng)用程序。
    運(yùn)行時(shí)工具 java 和 jdb 還具有 -cp 選項(xiàng)。該選項(xiàng)是 -classpath 的縮寫。

    對(duì)于非常特殊的情況,java 和 javac 都具有開(kāi)關(guān),使得可改變它們使用的路徑以查找它們自己的類庫(kù)。但是,絕大多數(shù)用戶從來(lái)都不會(huì)用到這些開(kāi)關(guān)。

    使用 CLASSPATH 環(huán)境變量
    如前一節(jié)中所述,一般用戶將想要使用 -classpath 命令行選項(xiàng)。本節(jié)將介紹如何設(shè)置 CLASSPATH 環(huán)境變量或清除以前安裝遺留下的設(shè)置。
    設(shè)置 CLASSPATH
    在 DOS 提示符下,可用 set 命令修改 CLASSPATH 環(huán)境變量。其格式為:
    ?? set CLASSPATH=path1;path2 ...
    路徑應(yīng)該以指定驅(qū)動(dòng)器的字母開(kāi)頭,例如 C:\...。這樣,在偶然切換到不同驅(qū)動(dòng)器時(shí)仍可找到類(例如,如果路徑項(xiàng)以 \... 開(kāi)頭,并且當(dāng)前位于驅(qū)動(dòng)器 D: 上,則所需的類將在 D: 而不是 C: 驅(qū)動(dòng)器上找)。
    清除 CLASSPATH
    如果 CLASSPATH 環(huán)境變量被設(shè)置成不正確的值,或啟動(dòng)文件或腳本程序設(shè)置了不正確路徑,則可通過(guò)使用下列命令清除 CLASSPATH:
    ? C:> set CLASSPATH=
    該命令僅清除當(dāng)前會(huì)話的 CLASSPATH。要確保在以后的會(huì)話中具有正確的 CLASSPATH 設(shè)置,則應(yīng)該刪除或修改啟動(dòng)設(shè)置。
    更改啟動(dòng)設(shè)置
    如果在系統(tǒng)啟動(dòng)時(shí)設(shè)置 CLASSPATH 變量,則查找它的位置取決于所使用的操作系統(tǒng):
    ? 操作系統(tǒng) 方法
    Windows 98 和
    Windows 95 檢查 autoexec.bat 文件中的 set 命令。
    Windows NT 啟動(dòng)“控制面板”,選擇“系統(tǒng)”,單擊“環(huán)境”選項(xiàng)卡,并在“用戶變量”部分中,檢查 CLASSPATH 變量。

    理解類路徑和包名
    Java 類被組織成包,而這些包被映射到文件系統(tǒng)中的目錄。但是與文件系統(tǒng)不同的是,無(wú)論何時(shí)指定包名,都應(yīng)指定完整包名 -- 永遠(yuǎn)不要僅指定它的一部分。例如,java.awt.Button 的包名總是應(yīng)指定為 java.awt。
    例如,假定想要 Java 運(yùn)行環(huán)境在包 utility.myapp 中查找名為 Cool.class 的類。如果該目錄的路徑為 C:\java\MyClasses\utility\myapp,則應(yīng)該將類路徑設(shè)置成包含 C:\java\MyClasses。

    要運(yùn)行該應(yīng)用程序,可使用下述 JVM 命令:

    C:>? java -classpath C:\java\MyClasses utility.myapp.Cool
    當(dāng)該應(yīng)用程序運(yùn)行時(shí),JVM 使用類路徑設(shè)置查找在 utility.myapp 包中定義的任何其他類。
    注意:應(yīng)在命令中指定完整包名。例如,設(shè)置類路徑包含 C:\java\MyClasses\utility 并使用命令 java myapp.Cool 是不可能的,因?yàn)檫@找不到該類。

    (您可能想知道用什么定義類的包名。答案是:包名是類的一部分,并且不能修改,除非重新編譯該類。)

    注意:包規(guī)范機(jī)制一個(gè)有趣的結(jié)果是,屬于相同包的多個(gè)文件實(shí)際上可存在于不同的目錄中。對(duì)于每個(gè)類,包名都是相同的,但是每個(gè)文件的路徑可從類路徑中的不同目錄開(kāi)始。
    文件夾和歸檔文件
    當(dāng)類存儲(chǔ)在目錄(文件夾)中時(shí),例如 c:\java\MyClasses\utility\myapp,則類路徑項(xiàng)指向包含包名第一個(gè)元素的目錄(在這里為 C:\java\MyClasses,因?yàn)榘?utility.myapp)。
    但是當(dāng)類存儲(chǔ)在歸檔文件(.zip 或 .jar 文件)中時(shí),類路徑項(xiàng)則是該 .zip 或 .jar 文件的路徑。例如,要使用位于 .jar 文件中的類庫(kù),則命令應(yīng)該類似下述形式:

    ?? java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool
    多重指定
    要在目錄 C:\java\MyClasses 和 C:\java\OtherClasses 中查找類文件,則可將類路徑設(shè)置為:
    ?? java -classpath C:\java\MyClasses;C:\java\OtherClasses ...
    注意兩個(gè)路徑之間用分號(hào)分隔。
    指定次序
    指定多個(gè)類路徑項(xiàng)的次序是相當(dāng)重要的。Java 解釋器將按照目錄在類路徑變量中的次序在各個(gè)目錄中查找類。在上例中,Java 解釋器首先在目錄 C:\java\MyClasses 中查找需要的類。只有當(dāng)它在該目錄中沒(méi)有找到該類時(shí),解釋器才能到 C:\java\OtherClasses 目錄中查找

    posted @ 2006-07-20 20:29 murainwood 閱讀(246) | 評(píng)論 (0)編輯 收藏
    ? “C++比Java快”,“Java運(yùn)行于虛擬機(jī)上,當(dāng)然要比C++慢”,“C++生成的是本地代碼,直接運(yùn)行于本地硬件上”,“速度比Java快多了”......
    ??? 這是我一年前學(xué)Java時(shí)的想法,為什么有那些想法?很簡(jiǎn)單,人云亦云罷了。既然那么多“高手”都這么說(shuō),那么多“精通”Java和C++的人都那么說(shuō),自然而然就信了。
    ??? 就這么過(guò)去了一年,對(duì)Java也越來(lái)越熟悉。自己依然是個(gè)初學(xué)者,而且相信不上升到布盧斯.艾克爾那個(gè)高度,就別想說(shuō)自己精通C++和Java!
    ??? 雖說(shuō)仍舊是初學(xué)者,卻對(duì)國(guó)內(nèi)那些“高手高手高高手”們的一些言論有了懷疑:Java不比C++慢!然而無(wú)論我在哪個(gè)論壇上,那個(gè)技術(shù)群里頭發(fā)表這個(gè)觀點(diǎn),立刻會(huì)有一群“高手”來(lái)糾正,甚至有一次一個(gè)號(hào)稱“一般不學(xué)語(yǔ)言,要學(xué)兩個(gè)禮拜就能搞定”的“高手”很鄭重其事地向我說(shuō)明原理。當(dāng)我了解到此人Java才學(xué)了一個(gè)月的時(shí)候,實(shí)在是無(wú)語(yǔ)了。還要一次一個(gè)高手批駁我,于是乎小心問(wèn)了句,了解C語(yǔ)言里malloc和free函數(shù)的機(jī)制與否。此“高手”很不屑地告訴我:C++里的new 和 delete就能搞定,malloc早就沒(méi)用了。又無(wú)語(yǔ):也許他用的“C++"是他自己發(fā)明吧。
    ?? 只想問(wèn)一句那些“高手”,看過(guò)近年來(lái)Java PK C++的一些精彩報(bào)告沒(méi)?那些報(bào)告可是國(guó)外權(quán)威機(jī)構(gòu)的文獻(xiàn)啊!是通過(guò)實(shí)驗(yàn)得來(lái)的數(shù)據(jù)!
    ?? 還想問(wèn)一句:你們說(shuō)Java慢,是什么人,什么時(shí)候說(shuō)的?那些言論的源頭,大多數(shù)是Java 1.2時(shí)代以前的啊。
    ? 說(shuō)Java比C++慢的人,是否真的親自寫過(guò)測(cè)試代碼?(雖說(shuō)我的代碼不能算精確,但也好歹做過(guò)近十次的實(shí)驗(yàn),用了好幾種不同的JVM或Cpp編譯器,Java大獲全勝)
    ? 說(shuō)Java比C++慢的人,是否了解JVM的運(yùn)行機(jī)制?(我只能說(shuō)我了解一些罷了)
    ? 說(shuō)Java比C++慢的人,是否有拿得出手的報(bào)告或?qū)嶒?yàn)?(可惜,從來(lái)沒(méi)遇到過(guò))
    ? 說(shuō)Java比C++慢的人,請(qǐng)去學(xué)習(xí)一下唯物論!
    ??而且為什么只有在國(guó)外才有那么多人認(rèn)為Java快,只有國(guó)外的科研機(jī)構(gòu)才花費(fèi)時(shí)間和精力去做那些被很多國(guó)內(nèi)程序員斥為“沒(méi)用”(和好多程序員聊天時(shí),他們這么認(rèn)為)的實(shí)驗(yàn)?是中國(guó)的程序員都是天才么?還是中國(guó)的計(jì)算機(jī)業(yè)太“先進(jìn)”了,不需要去關(guān)心這些東西呢?
    ? 實(shí)在是發(fā)人深?。。?!
    ???
    posted @ 2006-06-29 06:22 murainwood 閱讀(5222) | 評(píng)論 (19)編輯 收藏
    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    如果真的給你一片天,你敢不敢要?

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    相冊(cè)

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产免费人成在线视频| 亚洲人成免费网站| 国产一区二区三区在线免费观看 | 成年免费大片黄在线观看com| 午夜精品在线免费观看| ww亚洲ww在线观看国产| 福利免费观看午夜体检区 | 亚洲av无码日韩av无码网站冲| 国色精品卡一卡2卡3卡4卡免费| 亚洲av无码一区二区三区不卡| 大地资源中文在线观看免费版 | 久久精品7亚洲午夜a| 两个人看的www高清免费视频 | 中文字幕成人免费高清在线| 亚洲国产美女精品久久久久∴| 老司机精品免费视频| 亚洲日本va午夜中文字幕一区| 在线观看免费中文视频| 亚洲中文字幕久久精品无码2021| 青青青国产在线观看免费| 亚洲久热无码av中文字幕| 亚洲av无码国产精品色在线看不卡 | 2022免费国产精品福利在线| 国产亚洲精品福利在线无卡一| 亚洲中文精品久久久久久不卡| 久久最新免费视频| 亚洲欧洲一区二区| 妞干网在线免费视频| 日本高清免费中文在线看| 亚洲啪啪AV无码片| 五月婷婷综合免费| 特黄aa级毛片免费视频播放| 免费观看美女裸体网站| 牛牛在线精品观看免费正| 亚洲AV日韩AV永久无码久久| 99在线视频免费观看视频| 美女18毛片免费视频| 久久精品国产亚洲夜色AV网站 | 又粗又大又长又爽免费视频| 亚洲精品无码久久久久YW| 亚洲午夜av影院|