仓酷云

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

[学习教程] JAVA教程之让代码代替你的设置文件吧仓酷云

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

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

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

x
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是net网页编程beans,谢谢。比来,在编写一个专门压测NameNode的工具(以下简称s4nn),它有两个难点:

  • s4nn必要能够摹拟上万个DataNode;
  • s4nn必要天真的撑持对NameNode会见举动的界说.
后者招致了本文的思索.
命令行参数和设置文件是最经常使用来设置体系的办法,前者用于设置项较少,后者则合适设置庞大情形.这两种体例都有配合使人疾苦的中央:

  • 编写代码往载进->剖析->转换,一般好像处置协定般无聊(如果有个甚么变动,KMN!!);
  • 关于庞大的设置文件编写而言,老是没有随手的编纂器撑持,写起来既累又易错.
如果用代码代替设置文件呢?
呃…这会很贫苦吧,像java如许的改了代码那还不要从头编译啊?
嗯,的确,但并没有设想中那末贫苦,一些技能可让它变得复杂(最少java是如许),如Btrace.
用代码代替自力的设置文件不是奇怪的做法,像Guice,Gant等已以InternalDSL的代码取代了XML.优点很分明:

  • 优秀的DSL作风,简便易懂;
  • 免除对设置文件的剖析转换;
  • 最好的编纂器撑持,语法高亮,一键格局化,提醒补全,重构;
  • 编译器匡助查错;
  • 与代码无缝分离,可以简单在变更中坚持分歧性.
简言之两个字,“高效”!这却是挺合适s4nn的,无妨一试!
从需求的角度动身,设置应当可以完成:

  • 界说一组ClientRPC挪用举动,其挪用参数,次数;
  • 界说DataNode的运转时特性,个数.
为满意这两点,代码计划上大概会有:
  1. classClientDriver{voidaddRpc(times,name,args)voidsetNameNode(address)}classDataNodeSimulator{voidsetCapacity(size)voidsetHeartbeatInterval(sec)voidsetBlockReportInterval(sec)voidsetNameNode(address)}
复制代码
那末其设置文件会是:
  1. 1<configuration>2<client>3<rpctimes="100000"name="getFileInfo">4<arguments>5<paramname="src">/foo</param>6</arguments>7</rpc>8</client>9<namenode>10<address>host:port</address>11</namenode>12<datanode>13<simulatornum="10000">14<capacityunit="GB">200</capacity>15<heartbeatIntervalunit="SECOND">1</heartbeatInterval>16<blockReportIntervalunit="HOUR">1</blockReportInterval>17</simulator>18</datanode>19</configuration>
复制代码
复杂吗?复杂,那是由于这只是最基础的,实践的设置招考虑到:

java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。
小妖女 该用户已被删除
沙发
发表于 2015-1-20 22:13:47 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
若天明 该用户已被删除
板凳
发表于 2015-1-30 06:57:32 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
分手快乐 该用户已被删除
地板
发表于 2015-1-30 21:10:37 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
爱飞 该用户已被删除
5#
发表于 2015-2-1 09:55:42 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
蒙在股里 该用户已被删除
6#
发表于 2015-2-6 15:05:02 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
变相怪杰 该用户已被删除
7#
发表于 2015-2-7 04:08:42 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
山那边是海 该用户已被删除
8#
发表于 2015-2-7 20:40:51 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
若相依 该用户已被删除
9#
发表于 2015-2-15 01:21:46 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
海妖 该用户已被删除
10#
发表于 2015-2-25 01:44:58 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
飘飘悠悠 该用户已被删除
11#
发表于 2015-3-6 10:54:24 | 只看该作者
是一种使用者不需花费很多时间学习的语言
愤怒的大鸟 该用户已被删除
12#
发表于 2015-3-13 00:07:27 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
冷月葬花魂 该用户已被删除
13#
发表于 2015-3-13 00:07:24 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
透明 该用户已被删除
14#
发表于 2015-3-13 05:09:42 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
小魔女 该用户已被删除
15#
发表于 2015-3-20 13:27:46 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-16 06:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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