深爱那片海 发表于 2015-1-18 11:17:44

了解下JAVA的Merlin的魔力: 利用断言

通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。
断言功效是Java1.4刊行版所具有的为人热切期盼的一项新功效。您能够将该功效看做是非常处置的一种初级情势。断言暗示为一些布尔表达式,程序员信任在程序中的某个特定点该表达式的值为真。比方,程序员大概会在程序中包括断言,使您永久也不会抵达switch语句中的default前提。
因为能够在任什么时候候启用或禁用断言考证,因而能够在测试时启用断言考证而部署时禁用断言考证。一样,程序投进运转后,终极用户在碰着成绩时能够从头启用断言。
在本专栏文章中,经由过程演示两种分歧的体例来启用和禁用断言以便优化代码测试和功能,我将向您报告一些有关向代码中增加断言的基础常识。
断言关头字
断言反省就象非常处置,可是当断言失利时,却不会抛出非常,而会抛出一个AssertionError。象一切毛病一样,从断言妨碍中恢复(假如不是不成能的话)就是很坚苦的,由于如许的妨碍标明程序形态已偏离一般操纵参数。
利用断言的两个基础机关以下:
assertbooleanExpression;
assertbooleanExpression:message;
注重,可选的动静(message)将作为毛病抛出的了局显现出来。
能够将断言语句作为办法的前置前提或后置前提来增加。也能够创建布尔表达式以挪用办法。一样,您大概但愿向if块中的else前提增加断言,这里已设置了该前提,大概向switch语句中的缺省情形中增加断言,使缺省情形永久不成能抵达。assert关头字的独一限定在于它必需位于可实行块中。不克不及将断言同实例的类变量声明一块利用,但却能够将其置于任何办法内。
启用断言
假如您想利用断言,那末您必需利用一些专门的命令行选项来编译并运转程序。因为编译器运转于1.3兼容形式,因而您必需显式地请求运转在1.4形式下。要编译带有断言的程序,只需向Java编译器传送-source1.4设置。缺省情形下,会禁用断言反省,因而在运转时您也要显式地启用这一功效。请利用-enableassertions选项或更短的-ea选项来启用断言反省。
上面的复杂示例向您先容了向程序中增加断言反省的一些需要步骤。它反省命令行参数的数量,假如值不为0时,则呈报成绩:
publicclassAssertTest{
 publicstaticvoidmain(Stringargs[]){
  assertargs.length==0:args.length+"!=0";
  System.out.println(args.length);
 }
}
确保按以下所示利用-source选项来编译该程序:
javac-source1.4AssertTest.java
要测试该程序,只需运转该程序并传送命令行参数:
javaAssertTest1234
由于该程序是用来显现参数的数量,以是该测试程序将显现四。因为在缺省情形下禁用了断言反省,因而不会检测就任何断言毛病。
<p>
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。

不帅 发表于 2015-1-20 19:39:24

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

飘灵儿 发表于 2015-1-25 23:19:46

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

透明 发表于 2015-2-9 21:24:16

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

灵魂腐蚀 发表于 2015-2-10 01:53:46

是一种使网页(Web Page)产生生动活泼画面的语言

乐观 发表于 2015-2-12 07:48:19

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

再见西城 发表于 2015-2-14 05:32:30

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

因胸联盟 发表于 2015-3-4 04:56:13

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

蒙在股里 发表于 2015-3-11 14:08:35

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

分手快乐 发表于 2015-3-18 17:43:47

是一种使用者不需花费很多时间学习的语言

活着的死人 发表于 2015-3-26 06:33:09

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
页: [1]
查看完整版本: 了解下JAVA的Merlin的魔力: 利用断言