|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。
有良多人在问我,既然SUN或第三方已为我们供应充足多的API,我们为何还要本人写底层涵式?
实在这个成绩关于初学者和一般的程序员是不会了解的,但当你对一门言语,否则不但是说JAVA,精晓到必定的程序时,你就天然地舆解了-----你不再想用他人为你计划的涵式,由于你信任你本人写的涵式的完成历程比他人供应给你的更strong.
这个strong的尺度应当上效力更高,功效更好(不是更多).
我们先把SUN和第三方软件商供应的API叫尺度API,我们本人的就叫快速API,
尺度API的特性是通用,为了这个通用,就要支付必定的资本,就象JAVA自己为了通用就要先完成JVM,一个一般的BEAN,它的营业逻辑大概只要一行代码,但为了照应那些菜鸟级的客户程序员,BEAN的计划者们(服务程序员)不能不花更多的时分来写BEAN的接口.就是所谓的标准:以80%的资本来完成营业逻辑之外的功效.
就好比JAVAMAIL,在一个MAIL体系中,真正完成十分完全的MAIL功效的API约莫有30个摆布,但JAVAMAIL为了基于"动静机制"这一标准,不管从效力仍是从易用性方面都成了邮件体系中的渣滓,我本人固然学过很多多少种言语,但我对JAVA言语有一种狂热.我如许评价JAVAMAIL其实不影响我对JAVA言语和JAVA手艺的酷爱.
能够说,JAVA开辟小组的职员已不是本来的那些精英了,他们最后的头脑并没有被一向发扬,就JAVAMAIL自己来讲,他们已从头脑退步到程式的程度------为了通用而存心通用,了局堕入了难用的泥淖.
关于我们来讲,假如你对JAVA手艺的完成十分懂得,本人写涵式办理成绩是一个最无效的手腕.好比我们明晓得String的+操纵在底层是StringBuffer的append()操纵,为何不在程式中间接如许做呢?假如你如许你会取得惊人的效力:
Strings="";
for(int=0;i<1024*1024*4;i++)
s+=1;
如许失掉4M的字符串在我的P2上要30分钟以上,
而
StringBuffersb=newStringBuffer();
for(int=0;i<1024*1024*4;i++)
sb.append("1");
Strings=newString(sb);
不到一秒.为何不这么做呢?固然String和StringBuffer是一般程序员都晓得的,可是关于更多的数据布局的效力,有几个程序员都明显白白清分明楚?
我屡次说过,一切的言语,哪怕是汇编,一切日期涵式都是从UNIX工夫戳转换来的,
那末从这个值转换已往是最快的办法,你别看SUN为你供应了DateFormat,Calendar等类和一些甚么after(),before()办法,它们也都是从UNIX工夫戳来对照再转换的,为了完成通用,它们还要思索分歧国度的格局标准,
(local),以是基本不如你本人写来得更无效.
别的一方面,你要信任,尺度API的开辟职员并非每一个人都比你更伶俐,一样的功效他们大概完成得比你更低劣,大概说你能做得比他们更好.固然尽年夜多半的功效他们完成得很好,这就是我,我们都还在用JAVA言语而没有往本人重写JAVA言语的缘故原由,但在实践使用中,良多良多的时分,应当本人下手下手往写出更无效率,加倍有用的快速API来.
最初说说,怎样能写出更好的API.
起首你要对现有的API十分熟习,那些连甚么随机数API都不晓得还要问人的人不要再看了,你们应当好好地下一些真工夫在JAVA言语自己上,而不要急于做一些项目,你们如今要做的不是项目,而是功课.
对JAVA言语有了相称的懂得后,进步一个层次,深切地舆解一个JAVA手艺.
然后回过火来,再深切JAVA言语,就是说在工夫到了七层摆布,先要对十层的地步有一个概览再转头练八层.这时候你把JDK的几个jar文件都睁开了,然后把目次布局打印出来,对每一个包下的每一个类如许的全体布局的目次树先熟习,然后天天对个中的几个jad出来,看看SUN的完成历程,隐恶扬善!!!不是为了和他们过不往,是为了加深影象和了解.
假如没有充足的时分,最少对经常使用的类要做到以上的请求.
接上去,你要进修的是JAVA言语的调试手艺,不要用任何工具,就用命令行.
熟习今后进修JAVA假造机标准,这是你成为妙手的关头.
经由以上进修,固然在进修中为懂得决一些成绩你已偶然地学了更多地工具.
你本人碰运气,本人写一个String类,把jdk中的谁人给replace了看看,假如统统没成绩你应当能够是真实的妙手了.这时候你必定会感到到本人写API的效力和兴趣了.
在ruby里才是一切皆对象。当然我不并不是很了解ruby,但是ruby确实是将语法简化得很好。 |
|