仓酷云

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

[学习教程] JAVA编程:JAVA代码编写的30条倡议

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

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

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

x
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。JAVA代码编写的30条倡议
(1)类名首字母应当年夜写。字段、办法和对象(句柄)的首字母应小写。关于一切标识符,个中包括的一切单词都应紧靠在一同,并且年夜写两头单词的首字母。比方:
ThisIsAClassName
thisIsMethodOrFieldName
若在界说中呈现了常数初始化字符,则年夜写staticfinal基础范例标识符中的一切字母。如许即可标记出它们属于编译期的常数。
Java包(Package)属于一种特别情形:它们全都是小写字母,即使两头的单词亦是云云。关于域名扩大称号,如com,org,net大概edu等,全体都应小写(这也是Java1.1和Java1.2的区分之一)。(2)为了惯例用处而创立一个类时,请接纳"典范情势",并包括对下述元素的界说:equals()
hashCode()
toString()
clone()(implementCloneable)
implementSerializable(3)关于本人创立的每个类,都思索置进一个main(),个中包括了用于测试谁人类的代码。为利用一个项目中的类,我们没需要删除测试代码。若举行了任何情势的修改,可便利地前往测试。这些代码也可作为怎样利用类的一个示例利用。(4)应将办法计划成扼要的、功效性单位,用它形貌和完成一个不一连的类接口部分。幻想情形下,办法应长篇大论。若长度很年夜,可思索经由过程某种体例将其支解成较短的几个办法。如许做也便于类内代码的反复利用(有些时分,办法必需十分年夜,但它们仍应只做一样的一件事变)。(5)计划一个类时,请设身处地为客户程序员思索一下(类的利用办法应当长短常明白的)。然后,再设身处地为办理代码的人思索一下(估计有大概举行哪些情势的修正,想一想用甚么办法可把它们变得更复杂)。
(6)使类尽量短小干练,并且只办理一个特定的成绩。上面是对类计划的一些倡议:
■一个庞大的开关语句:思索接纳"多形"机制
■数目浩瀚的办法触及到范例不同极年夜的操纵:思索用几个类来分离完成
■很多成员变量在特性上有很年夜的不同:思索利用几个类(7)让统统工具都尽量地"公有"--private。可以使库的某一部分"大众化"(一个办法、类大概一个字段等等),就永久不克不及把它拿出。若强行拿出,便可能损坏其别人现有的代码,使他们不能不从头编写和计划。若只发布本人必需发布的,便可宁神勇敢地改动其他任何工具。在多线程情况中,隐私是出格主要的一个要素--只要private字段才干在非同步利用的情形下遭到回护。(8)谨惕"伟大对象综合症"。对一些习气于按次编程头脑、且初涉OOP范畴的老手,常常喜好先写一个按次实行的程序,再把它嵌进一个或两个伟大的对象里。依据编程道理,对象表达的应当是使用程序的观点,而非使用程序自己。(9)若不得已举行一些不太美观的编程,最少应当把那些代码置于一个类的外部。(10)任什么时候候只需发明类与类之间分离得十分严密,就必要思索是不是接纳外部类,从而改良编码及保护事情(拜见第14章14.1.2大节的"用外部类改善代码")。(11)尽量仔细地加上正文,并用javadoc正文文档语法天生本人的程叙文档。(12)制止利用"把戏数字",这些数字很难与代码很好地共同。如今后必要修正它,无疑会成为一场恶梦,由于基本不晓得"100"究竟是指"数组巨细"仍是"其他全然分歧的工具"。以是,我们应创立一个常数,并为其利用具有压服力的形貌性称号,并在全部程序中都接纳常数标识符。如许可以使程序更容易了解和更容易保护。(13)触及构建器和非常的时分,一般但愿从头抛弃在构建器中捕捉的任何非常--假如它形成了谁人对象的创立失利。如许一来,挪用者就不会觉得谁人对象已准确地创立,从而自觉地持续。(14)当客户程序员用完对象今后,若你的类请求举行任何扫除事情,可思索将扫除代码置于一个优秀界说的办法里,接纳相似于cleanup()如许的名字,明白标明本人的用处。除此之外,可在类内安排一个boolean(布尔)标志,指出对象是不是已被扫除。在类的finalize()办法里,请断定对象已被扫除,并已抛弃了从RuntimeException承继的一个类(假如还没有的话),从而指出一个编程毛病。在接纳象如许的计划之前,请断定finalize()可以在本人的体系中事情(大概必要挪用System.runFinalizersOnExit(true),从而确保这一举动)。(15)在一个特定的感化域内,若一个对象必需扫除(非由渣滓搜集机制处置),请接纳下述办法:初始化对象;若乐成,则当即进进一个含有finally从句的try块,入手下手扫除事情。(16)若在初始化过程当中必要掩盖(作废)finalize(),请记着挪用super.finalize()(若Object属于我们的间接超类,则无此需要)。在对finalize()举行掩盖的过程当中,对super.finalize()的挪用应属于最初一个举动,而不该是第一个举动,如许可确保在必要基本类组件的时分它们仍然无效。(17)创立巨细流动的对象汇合时,请将它们传输至一个数组(若筹办从一个办法里前往这个汇合,更应云云操纵)。如许一来,我们便可享用到数组在编译期举行范例反省的优点。别的,为利用它们,数组的吸收者大概其实不必要将对象"外型"到数组里。(18)只管利用interfaces,不要利用abstract类。若已知某样工具筹办成为一个基本类,那末第一个选择应是将其酿成一个interface(接口)。只要在不能不利用办法界说大概成员变量的时分,才必要将其酿成一个abstract(笼统)类。接口次要形貌了客户但愿做甚么事变,而一个类则努力于(或同意)详细的实行细节。(19)在构建器外部,只举行那些将对象设为准确形态所需的事情。尽量地制止挪用其他办法,由于那些办法大概被其别人掩盖或作废,从而在构建过程当中发生不成预知的了局(拜见第7章的具体申明)。(20)对象不该只是复杂地包容一些数据;它们的举动也应失掉优秀的界说。(21)在现成类的基本上创立新类时,请起首选择"新建"或"创作"。只要本人的计划请求必需承继时,才招考虑这方面的成绩。若在原本同意新建的场所利用了承继,则全部计划会变得没有需要地庞大。(22)用承继及办法掩盖来暗示举动间的差别,而用字段暗示形态间的区分。一个十分极度的例子是经由过程对分歧类的承继来暗示色彩,这是相对应当制止的:应间接利用一个"色彩"字段。(23)为制止编程时碰到贫苦,请包管在本人类路径指到的任何中央,每一个名字都仅对应一个类。不然,编译器大概先找到同名的另外一个类,并呈报堕落动静。若嫌疑本人碰着了类路径成绩,请尝尝在类路径的每个出发点,搜刮一下同名的.class文件。(24)在Java1.1AWT中利用事务"适配器"时,出格简单碰着一个圈套。若掩盖了某个适配器办法,同时拼写办法没有出格考究,最初的了局就是新增加一个办法,而不是掩盖现成办法。但是,因为如许做是完整正当的,以是不会从编译器或运转期体系取得任何堕落提醒--只不外代码的事情就变得不一般了。(25)用公道的计划计划打消"伪功效"。也就是说,倘使只必要创立类的一个对象,就不要提早限定本人利用使用程序,并加上一条"只天生个中一个"正文。请思索将其封装成一个"独生子"的情势。若在主程序里有大批狼藉的代码,用于创立本人的对象,请思索采取一种制造性的计划,将些代码封装起来。(26)小心"剖析瘫痪"。请记着,不管怎样都要提早懂得全部项目标情况,再往考查个中的细节。因为掌控了全局,可疾速熟悉本人未知的一些要素,避免在考查细节的时分堕入"逝世逻辑"中。(27)小心"过早优化"。起首让它运转起来,再思索变得更快--但只要在本人必需如许做、并且经证明在某部分代码中切实其实存在一本性能瓶颈的时分,才应举行优化。除非用专门的工具剖析瓶颈,不然很有多是在华侈本人的工夫。功能提拔的隐含价值是本人的代码变得难于了解,并且难于保护。(28)请记着,浏览代码的工夫比写代码的工夫多很多。思绪明晰的计划可取得易于了解的程序,但正文、仔细的注释和一些示例常常具有不成估计的代价。不管对你本人,仍是对厥后的人,它们都是相称主要的。如对此仍有嫌疑,那末请试想本人试图从联机Java文档里找出有效信息时碰着的波折,如许也许能将你压服。(29)如以为本人已举行了优秀的剖析、计划大概实行,那末请略微改换一下头脑角度。尝尝约请一些外来人士--其实不必定是专家,但能够是来自本公司其他部门的人。请他们用完整奇怪的目光考查你的事情,看看是不是能找出你一度置若罔闻的成绩。接纳这类体例,常常能在最合适修正的阶段找出一些关头性的成绩,制止产物刊行后再办理成绩而酿成的款项及精神方面的丧失。(30)优秀的计划能带来最年夜的报答。简言之,关于一个特定的成绩,一般会花较长的工夫才干找到一种最得当的办理计划。但一旦找到了准确的办法,今后的事情就轻松多了,不再用履历数小时、数天大概数月的疾苦挣扎。我们的勉力事情会带来最年夜的报答(乃至无可估计)。并且因为本人倾泻了大批血汗,终极取得一个杰出的计划计划,乐成的快感也是使人心动的。保持抵抗草草竣工的勾引--那样做常常得失相当(3)关于本人创立的每个类,都思索置进一个main(),个中包括了用于测试那个类的代码。为利用一个项目中的类,我们没需要删除测试代码。若举行了任何情势的修改,可便利地前往测试。这些代码也可作为怎样利用类的一个示例利用。thisisabsolutlybad!(4)应将办法计划成扼要的、功效性单位,用它形貌和完成一个不一连的类接口部分。幻想情形下,办法应长篇大论。若长度很年夜,可思索经由过程某种体例将其支解成较短的几个办法。如许做也便于类内代码的反复利用(有些时分,方法必需十分年夜,但它们仍应只做一样的一件事变)。(5)计划一个类时,请设身处地为客户程序员思索一下(类的利用办法应当是十分明白的)。然后,再设身处地为办理代码的人思索一下(估计有大概举行哪些情势的修正,想一想用甚么办法可把它们变得更复杂)。
(6)使类尽量短小干练,并且只办理一个特定的成绩。上面是对类计划的一些倡议:
■一个庞大的开关语句:思索接纳"多形"机制
■数目浩瀚的办法触及到范例不同极年夜的操纵:思索用几个类来分离完成
■很多成员变量在特性上有很年夜的不同:思索利用几个类(7)让统统工具都尽量地"公有"--private。可以使库的某一部分"大众化"(一个办法、类大概一个字段等等),就永久不克不及把它拿出。若强行拿出,便可能破坏其别人现有的代码,使他们不能不从头编写和计划。若只发布本人必需发布的,便可宁神勇敢地改动其他任何工具。在多线程情况中,隐私是出格主要的一个要素--只要private字段才干在非同步利用的情形下遭到回护。notnecessary,pretotectorpackagelevelalsofineinmostcase(8)谨惕"伟大对象综合症"。对一些习气于按次编程头脑、且初涉OOP范畴的新手,常常喜好先写一个按次实行的程序,再把它嵌进一个或两个伟大的对象里。依据编程道理,对象表达的应当是使用程序的观点,而非使用程序自己。(9)若不得已举行一些不太美观的编程,最少应当把那些代码置于一个类的内部。(10)任什么时候候只需发明类与类之间分离得十分严密,就必要思索是不是接纳外部类,从而改良编码及保护事情(拜见第14章14.1.2大节的"用外部类改善代码")。(11)尽量仔细地加上正文,并用javadoc正文文档语法天生本人的程叙文档。(12)制止利用"把戏数字",这些数字很难与代码很好地共同。如今后必要修正它,无疑会成为一场恶梦,由于基本不晓得"100"究竟是指"数组巨细"仍是"其他全然分歧的工具"。以是,我们应创立一个常数,并为其利用具有压服力的描述性称号,并在全部程序中都接纳常数标识符。如许可以使程序更容易了解和更易保护。(13)触及构建器和非常的时分,一般但愿从头抛弃在构建器中捕捉的任何非常--假如它形成了谁人对象的创立失利。如许一来,挪用者就不会觉得谁人对象已准确地创立,从而自觉地持续。(14)当客户程序员用完对象今后,若你的类请求举行任何扫除事情,可思索将扫除代码置于一个优秀界说的办法里,接纳相似于cleanup()如许的名字,明白标明本人的用处。除此之外,可在类内安排一个boolean(布尔)标志,指出对象是不是已被扫除。在类的finalize()办法里,请断定对象已被扫除,并已抛弃了从RuntimeException承继的一个类(假如还没有的话),从而指出一个编程毛病。在接纳象如许的计划之前,请断定finalize()可以在本人的体系中事情(大概必要挪用System.runFinalizersOnExit(true),从而确保这一举动)。(15)在一个特定的感化域内,若一个对象必需扫除(非由渣滓搜集机制处理),请接纳下述办法:初始化对象;若乐成,则当即进进一个含有finally从句的try块,入手下手扫除事情。(16)若在初始化过程当中必要掩盖(作废)finalize(),请记着挪用super.finalize()(若Object属于我们的间接超类,则无此需要)。在对finalize()举行掩盖的过程当中,对super.finalize()的挪用应属于最初一个举动,而不该是第一个举动,如许可确保在必要基本类组件的时分它们仍然无效。(17)创立巨细流动的对象汇合时,请将它们传输至一个数组(若筹办从一个方法里前往这个汇合,更应云云操纵)。如许一来,我们便可享用到数组在编译期举行范例反省的优点。别的,为利用它们,数组的吸收者大概其实不必要将对象"外型"到数组里。(18)只管利用interfaces,不要利用abstract类。若已知某样工具筹办成为一个基本类,那末第一个选择应是将其酿成一个interface(接口)。只要在不能不利用办法界说大概成员变量的时分,才必要将其酿成一个abstract(笼统)类。接口次要形貌了客户但愿做甚么事变,而一个类则努力于(或同意)详细的实行细节。theyaretotaldiffrent,(19)在构建器外部,只举行那些将对象设为准确形态所需的事情。尽量地避免挪用其他办法,由于那些办法大概被其别人掩盖或作废,从而在构建过程当中发生不成预知的了局(拜见第7章的具体申明)。(20)对象不该只是复杂地包容一些数据;它们的举动也应失掉优秀的界说。(21)在现成类的基本上创立新类时,请起首选择"新建"或"创作"。只要本人的设计请求必需承继时,才招考虑这方面的成绩。若在原本同意新建的场所利用了承继,则全部计划会变得没有需要地庞大。(22)用承继及办法掩盖来暗示举动间的差别,而用字段暗示形态间的区分。一个十分极度的例子是经由过程对分歧类的承继来暗示色彩,这是相对应当制止的:应间接利用一个"色彩"字段。(23)为制止编程时碰到贫苦,请包管在本人类路径指到的任何中央,每一个名字都仅对应一个类。不然,编译器大概先找到同名的另外一个类,并呈报堕落消息。若嫌疑本人碰着了类路径成绩,请尝尝在类路径的每个出发点,搜刮一下同名的.class文件。classpathisnotthatsimple(24)在Java1.1AWT中利用事务"适配器"时,出格简单碰着一个圈套。若掩盖了某个适配器办法,同时拼写办法没有出格考究,最初的了局就是新增加一个方法,而不是掩盖现成办法。但是,因为如许做是完整正当的,以是不会从编译器或运转期体系取得任何堕落提醒--只不外代码的事情就变得不一般了。(25)用公道的计划计划打消"伪功效"。也就是说,倘使只必要创立类的一个对象,就不要提早限定本人利用使用程序,并加上一条"只天生个中一个"正文。请思索将其封装成一个"独生子"的情势。若在主程序里有大批狼藉的代码,用于创立本人的对象,请思索采取一种制造性的计划,将些代码封装起来。(26)小心"剖析瘫痪"。请记着,不管怎样都要提早懂得全部项目标情况,再往考查个中的细节。因为掌控了全局,可疾速熟悉本人未知的一些要素,避免在考查细节的时分堕入"逝世逻辑"中。(27)小心"过早优化"。起首让它运转起来,再思索变得更快--但只要在本人必需如许做、并且经证明在某部分代码中切实其实存在一本性能瓶颈的时分,才应举行优化。除非用专门的工具剖析瓶颈,不然很有多是在华侈本人的工夫。功能提拔的隐含价值是本人的代码变得难于了解,并且难于保护。butknowearlyanddesignbetteratfirstisalwaysnecesary,orelse
youdie(28)请记着,浏览代码的工夫比写代码的工夫多很多。思绪明晰的计划可取得易于了解的程序,但正文、仔细的注释和一些示例常常具有不成估计的价值。不管对你本人,仍是对厥后的人,它们都是相称主要的。如对此仍有怀疑,那末请试想本人试图从联机Java文档里找出有效信息时碰着的波折,如许也许能将你压服。(29)如以为本人已举行了优秀的剖析、计划大概实行,那末请略微改换一下思维角度。尝尝约请一些外来人士--其实不必定是专家,但能够是来自本公司其他部门的人。请他们用完整奇怪的目光考查你的事情,看看是不是能找出你一度熟视无睹的成绩。接纳这类体例,常常能在最合适修正的阶段找出一些关头性的成绩,制止产物刊行后再办理成绩而酿成的款项及精神方面的丧失。(30)优秀的计划能带来最年夜的报答。简言之,关于一个特定的成绩,一般会花较长的工夫才干找到一种最得当的办理计划。但一旦找到了准确的办法,今后的事情就轻松多了,不再用履历数小时、数天大概数月的疾苦挣扎。我们的勉力事情会带来最年夜的报答(乃至无可估计)。并且因为本人倾泻了大批心血,终极取得一个杰出的计划计划,乐成的快感也是使人心动的。保持抵抗草草竣工的勾引--那样做常常得失相当
net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。
沙发
发表于 2015-1-21 16:58:19 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
蒙在股里 该用户已被删除
板凳
发表于 2015-1-30 21:23:37 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
第二个灵魂 该用户已被删除
地板
发表于 2015-2-4 20:07:02 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
柔情似水 该用户已被删除
5#
发表于 2015-2-4 21:15:56 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
小魔女 该用户已被删除
6#
发表于 2015-2-7 20:03:46 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
不帅 该用户已被删除
7#
发表于 2015-2-8 19:40:41 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
老尸 该用户已被删除
8#
发表于 2015-3-3 03:29:00 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
莫相离 该用户已被删除
9#
发表于 2015-3-11 09:05:13 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
若相依 该用户已被删除
10#
发表于 2015-3-11 09:52:19 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
谁可相欹 该用户已被删除
11#
发表于 2015-3-11 18:55:46 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
透明 该用户已被删除
12#
发表于 2015-3-13 01:33:39 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
灵魂腐蚀 该用户已被删除
13#
发表于 2015-3-20 09:05:45 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
admin 该用户已被删除
14#
发表于 2015-3-20 16:40:50 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
乐观 该用户已被删除
15#
发表于 2015-4-11 05:08:54 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
精灵巫婆 该用户已被删除
16#
发表于 2015-4-16 22:11:56 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
愤怒的大鸟 该用户已被删除
17#
发表于 2015-4-26 19:44:40 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
只想知道 该用户已被删除
18#
发表于 2015-5-1 17:10:41 | 只看该作者
是一种使用者不需花费很多时间学习的语言
活着的死人 该用户已被删除
19#
发表于 2015-5-1 19:09:18 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
爱飞 该用户已被删除
20#
发表于 2015-5-4 10:27:10 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 10:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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