仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 568|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA编程:为何要本人写底层涵式

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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确实是将语法简化得很好。
小妖女 该用户已被删除
沙发
发表于 2015-1-20 22:00:47 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
因胸联盟 该用户已被删除
板凳
发表于 2015-1-30 06:10:25 来自手机 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
若天明 该用户已被删除
地板
发表于 2015-2-6 07:40:20 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
变相怪杰 该用户已被删除
5#
发表于 2015-2-15 17:09:57 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
海妖 该用户已被删除
6#
发表于 2015-3-4 10:50:51 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
不帅 该用户已被删除
7#
发表于 2015-3-6 22:20:36 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
山那边是海 该用户已被删除
8#
发表于 2015-3-11 14:59:27 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
若相依 该用户已被删除
9#
发表于 2015-3-12 00:32:34 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
爱飞 该用户已被删除
10#
发表于 2015-3-19 17:00:12 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
简单生活 该用户已被删除
11#
发表于 2015-3-29 04:16:21 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 18:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表