Re:有没有朋友在研究J2ME?

[复制链接]
查看11 | 回复2 | 2021-1-29 05:17:05 | 显示全部楼层 |阅读模式
建议先丛JWSTK入门,先下载最新的JWSTK1.0.4,用它来开发一些简单的J2ME程序,基本上掌握J2ME的核心API(精华区有相关的文章),然后可以进一步学习J2ME的OptionalPackage,目前与J2ME有关的JSR很多,但是大部分都不是很成熟,下面这几个API值得关注以下:1.WirelessMessagingAPI(WMA)(JSR120):目前是1.0版本,已经正式releaseRI了,它使得J2ME平台可以支持ShortMessageService(SMS)和CellBroadcastService(CBS),请注意,这是与设备无关的,也就是与手机无关。
2.MobileMediaAPI(MMAPI)(JSR135):目前是1.0,也有RI可以用了,Sun提供了一个额外的包下载,下载安装这个包以后,JWSTK就可以支持MMAPI了,应该说,MMAPI就是轻量级的JMF在J2ME平台上的实现,根据Sun提供的demo来看,效果还是相当不错的。根据我的经验,MMAPI比JMF容易很多,很容易上手。
3.MobileGameAPI:这个就不消说了,不过这个API没有release,详细的信息,大家可以去www.jsr.org看一看。
4.J2MEWebServices(JSR172):J2ME平台和WebServices的结合。
5.ConnectedDeviceConfiguration(CDC)的PersonalProfile(PP):提供完全的应用程序环境,支持AWT的全集,支持Xlet和Applet
6.其他,比如JDBCOptionalPackageforCDC/FoundationProfileAPI(JSR-169),Mobile3DGraphics(JSR-184),SecurityandTrustServicesAPIforJ2ME(JSR-177)等等
如果有空,还可以看看JavaCard,JavaPhone,JavaTV这些东西,不过我觉得价值不是特别大。

回复

使用道具 举报

千问 | 2021-1-29 05:17:05 | 显示全部楼层
刚才才知道多项式那道题我是怎么错的。原来是因为算第二组数据的时候数组没有全部清零。因为一开始没看清题目,只申请了1000的数组。后来改为2000时数组清零的循环次数没改过来。我认为比起以前中学参加的各种竞赛,今天的题目应该算是简单了。但我却前后只看了3道题目。因为第一道题我觉得我不可能错,结果两个小时也没调出来错。我的程序很简单,只有一页,所以很自信。但没想到最后是因为数组清零的错误。我觉得这次考试我应该好好反省,以后不能太钻牛角尖,如果总是出错就应该先放了。以前参加的数学竞赛和信息学竞赛从来没有这个问题,即使做错了,自己不知道,也不会影响后面的题目。而现在却总是看着一道自己明明肯定会做的题目wa,这真是对考场心理素质的最大的考验,这是以前我从来没有体验过的。今天比赛时由于第一道题的严重打击,结果后面的情绪很不稳定。先是青蛙那道题,怎么调又都是不过。总算最后剩了一点时间很快把转盘那道题目搞定了,要不然今天就一道也没做出来了。
总而言之,考后总结了一下:
考试时如果遇到了很有把握的题目却wa的题目,首先考虑边界情况。包括:数组的申请(建议以后大家申请长度用一个宏来储存,一改全改)、循环的最后一次是否处理、小数据和超大数据的测试。建议以后大家在做题过程中出现的wa教训多往版上贴,收到精华区,这是我们应试的一笔财富。我这学期也作了不少题目了,但我觉得提高不大。还不如少做几道,多想想自己以前程序出错是在哪里,吸取教训,不再出重复的错误才是最重要的。
其次就是考试时不能总把着一个题目不放。我以前曾经有过一道题提交76遍通过的历史,也有过一到数学竞赛题做了一年才做出来的经历。但这些在考场上是不能取的。
还有就是今天作轮盘那道题目得到的经验。调试程序时有时可以从多种角度考虑调试。就拿轮盘这道题目来说,我今天很快编完后通过了sample数据,结果提交wa。自己编了许多测试数据检查,但都没有出错。最后我想到如果把输入数据取反(即白变黑、黑变白),输出应该是一样的。我就把程序一改,发现结果与刚才不一样。最后终于找出了错误。记得以前做数学题是老师总说,检查时可以换种算法考虑。我觉得这个是非常值得借鉴的。
好了,以上是我今天的感受,希望大家也多发自己的感受。互相学习。

回复

使用道具 举报

千问 | 2021-1-29 05:17:05 | 显示全部楼层
usingnamespacestd;
#definedefaultsize10000#defineCLOCKS_PER_SEC1000clock_ttstart=0;voidRandomize(){srand(1);}intRandom(intn){returnrand()%(n);}voidSettime(){tstart=clock();}doubleGettime(){return(double)((double)clock()-(double)tstart)/(double)CLOCKS_PER_SEC;}ifstreamin;ofstreamout;intleftOver,status=0;constintcodes=4096;constintByteSize=8;constintexcess=4;constintalpha=256;constintmask1=255;constintmask2=15;templateclassTclasselement{public:Tkey;Tcode;elementToperator=(elementTe){key=e.key;code=e.code;return*this;}};templateclassTclasshashNode{public:elementTe;hashNodeT*next;hashNode(elementTit){e=it;next=NULL;}};templateclassTclasshashTable{private:intmaxSize;hashNodeT**HT;inthash(Tkey){if(key60000){Ttemp;inti;temp=key*key;temp=temp12;i=temp(int)65535;return(i%maxSize);}else{inti;i=key255;i=i*i;return(i%maxSize);}}public:hashTable(intsize=defaultsize){maxSize=size;HT=newhashNodeT*[maxSize];for(inti=0;imaxSize;i++){HT=NULL;}}boolsearch(Tkey,elementTe){inthome;hashNodeT*temp;home=hash(key);temp=HT[home];if(!temp)returnfalse;while(temp){if((temp-e).key==key){e=temp-e;returntrue;}temp=temp-next;}returnfalse;}boolinsert(elementTe){inthome;hashNodeT*temp;home=hash(e.key);temp=HT[home];if(!temp){HT[home]=newhashNodeT(e);returntrue;}if((HT[home]-e).key==e.key)returnfalse;while(temp-next){if((temp-next-e).key==e.key)returnfalse;temp=temp-next;}temp-next=newhashNodeT(e);returntrue;}
};voidsetFiles(intargc,char*argv[]){charinPutFile[50];charoutPutFile[50];if(argc=2){strcpy(inPutFile,argv[1]);}else{coutplzenternameoffiletocompress;coutendlfileshouldnothaveextension;cininPutFile;}//if(strchr(inPutFile,'.')){//coutnameoffileshouldnothaveextension;//}in.open(inPutFile,ios::binary);if(in.fail()){cerrcannotopen;}strcpy(outPutFile,inPutFile);strcat(outPutFile,.zzz);out.open(outPutFile,ios::binary);}voidoutPut(unsignedlongpcode){unsignedcharc,d;if(status){d=pcodemask1;c=(leftOverexcess)|(pcodeByteSize);out.put(c);out.put(d);status=0;}else{leftOver=pcodemask2;c=pcodeexcess;out.put(c);status=1;}}
voidcompress(){hashTableunsignedlongh;elementunsignedlonge;for(inti=0;ialpha;i++){e.key=i;e.code=i;h.insert(e);}intused=alpha;unsignedcharc;c=in.get();unsignedlongpcode=c;if(!in.eof()){do{c=in.get();if(in.eof())break;unsignedlongk=(pcodeByteSize)+c;if(h.search(k,e))pcode=e.code;else{outPut(pcode);if(usedcodes){e.code=used++;e.key=(pcodeByteSize)|c;h.insert(e);}pcode=c;}}while(true);}outPut(pcode);if(status){c=leftOverexcess;out.put(c);}out.close();in.close();}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行