scjp 断言,是什么东西,没用过呢??

wren4255 2008-04-03 09:07:13
谢谢!
...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
linmeboss 2008-06-13
  • 打赏
  • 举报
回复
相当好 顶了
wren4255 2008-04-03
  • 打赏
  • 举报
回复
very thank you
  • 打赏
  • 举报
回复
断言是从J2SE1.4开始引入的一项技术,其设计初衷是为程序的开发与测试提供方便。

比如如下代码:

private int[] myFunction(int i){
if(i<0){
System.out.println("程序逻辑出错,i应该为正数");
}
else{
return new int[i];
}
}


这断代码在测试阶段用的,检测一个数符不符合条件,但是程序正式发布的时候,不想要这个if语句保留下来,因为降低程序性能,因此引入断言。

引入断言代码:

private int[] myFunction(int i){
assert i>=0: "程序逻辑出错,该值应该为正数!!";
return new int[i];
}


程序测试的时候让编译器启用断言,发布运行的时候关闭断言,这样就可以在不修改代码的情况下,去除测试代码。

jdk5以后,默认编译是代断言的,如果要关闭断言则要在编译命令中添加 -source 1.3 参数 例

javac -source 1.3 java文件

运行的时候,如果要启用断言,则要增加参数 -ea:
java -ea 类名

我打了这么多,不知道有没有帮助,说的明不明白
DL88250 2008-04-03
  • 打赏
  • 举报
回复
SCJP:Sun认证的Java工程师
断言:assert()
thursdaynight 2008-04-03
  • 打赏
  • 举报
回复
jdk1.4支持断言,就是给出一个布尔表达式,如果程序正常运行,则表达式的值为true,若为false说明程序处于非正常状态,会抛出错误信号。
  • 打赏
  • 举报
回复
java里好像介绍这个的不多 C还是C++里有这个东西 忘了
Liebestraum 2008-04-03
  • 打赏
  • 举报
回复
SCJP是JAVA认证,断言是一种条件表达式,当且仅当你的代码正确运行时它的值才应该是true。如果这个断言表达式的值为false,将会发出一个错误信号。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧