- 浏览: 765196 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (208)
- Java (77)
- JavaScript (16)
- UML (1)
- Spring (24)
- Hibernate (11)
- J2EE部署 (18)
- 操作系统 (13)
- struts (11)
- jsp (3)
- J2EE (34)
- 数据库 (22)
- tomcat (4)
- apache (2)
- MyEclipse (13)
- Linux (14)
- Ext (6)
- Weblogic (2)
- 数据库 Oracle 空表导出 (1)
- Oracle (3)
- 编码 乱码 (1)
- 多线程 (5)
- jQuery (2)
- Apache Mina (1)
- ibatis (6)
- abator (1)
- svn (1)
- jvm (1)
- ERwin (2)
- mysql (2)
- ant (1)
- memcache (1)
- dubbo (1)
- PowerDesigner (1)
最新评论
-
di1984HIT:
Shallow heap & Retained heap -
tinguo002:
非常感谢 , 太棒了。
Spring注解方式,异常 'sessionFactory' or 'hibernateTemplate' is required的解决方法 -
白天看黑夜:
Apache Mina Server 2.0 中文参考手册(带 ...
Apache Mina – 简单的客户端/服务端应用示例 -
wumingxingzhe:
好文
Shallow heap & Retained heap -
di1984HIT:
学习了!!
工作流(Workflow)和BPM的不同
Java从1.4 版本 开始提供了一个新特性—— 断言 ( assertion )。在软件开发中,断言是一种经典的调试与测试方式。
简单来看 断言其实就是在程序中的一条语句(assert),它对一个boolean表达式进行测试,一个正确程序必须保证该表达式的值为true,如果该值为false,则说明程序已处于不正确的状态,运行将被终止并退出——即 断言用于保证程序最基本、 最 关键的正确性。
断言检查通常在开发和测试阶段开启。而在软件发布后 为提高 运行 性能,断言检查会被关闭。因此能够随时自由地选择开启或关闭断言检查显得非常重要,而这正是Java断言特性的重要功能之一。。
默认状态下断言检查是关闭的,可以在运行时通过 参数 -ea(e nablea ssertions) 开启断言检查,与之对应的是-da (d isenableablea ssertions) 用于关闭断言检查,例如:
下文再进一步讲解-ea/-da参数的用法,让我们先来看看assert语句的语法吧。
assert的语法格式有以下两种:
expression1是布尔表达式,必须保证在程序运行是其值为真,否则将抛出AssertionError异常并终止运行。
expression2是可选的。它用于当expression1为假时,作为构造器参数传递给AssertionError异常类,因此expression2的类型必须是合法的AssertionError构造器的参数类型。AssertionError共支持7中类型的构造器参数,分别是:boolean、char、double、float、int、long和Object,它们将会根据相关规范转换成错误提示信息字符串。
参数-ea & -da详解
-ea和-da的全名为-enableassertions和-disenableassertions,全名和缩写名有同样的功能。它们的含义为开启(-ea)或关闭(-da)断言功能。
通过-ea (或-da) 参数,可以打开 (或关闭) 某些类或者某些包的断言功能,
如果-ea(或-da)不带任何参数时:表示打开 (或关闭) 所有用户类的断言检查;如果带有包名称或者类名称 则表示打开 (或关闭) 这些类或包的断言检查;如果包名称后面跟有三个点 表示这个包及其子包都 打开 (或关闭) 断言检查 ;如果只有三个点则代表无名包;
下面表格罗列了参数含义 及其 例子:
请注意上表中的-esa 和 -dsa参数,他们与-ea、-da的唯一区别是,前者用于打开(或关闭)系统类的断言检查功能。所谓系统类 是指像java.lang.Object这样的Java系统类库中的类。
另外,你还可以使用Java API来调整断言开启状态,
ClassLoader.setDefaultAssertionStatus():用于开启/关闭断言;
ClassLoader.setPackageAssertionStatus():用于开启/关闭某些包的断言;
ClassLoader.setClassAssertionStatus():用于开启/关闭某些类的断言;
ClassLoader.clearAssertionStatus:用于关闭断言;
在Eclipse中启用断言的方法:
方法1、Window-->Preferences-->Java-->Installed JREs
选择当前正在使用的JDK条目,点击 Edit... 按钮,进入JRE Definition界面: 在 Default VM Arguments 栏输入 -ea (或 -enableassertions) 参数。
方法2、Run-->RunConfigurations,选择当前程序,并点击进入Arguments标签页,在VM arguments 栏输入 -ea(-enableassertions)参数。
以上两个方法,前者针对全局设置、后者仅 仅 对当前运行的程序有效。
在Android中启用断言的方法:
设置系统属性debug.assert ,在命令行环境中执行:
即可。
简单来看 断言其实就是在程序中的一条语句(assert),它对一个boolean表达式进行测试,一个正确程序必须保证该表达式的值为true,如果该值为false,则说明程序已处于不正确的状态,运行将被终止并退出——即 断言用于保证程序最基本、 最 关键的正确性。
断言检查通常在开发和测试阶段开启。而在软件发布后 为提高 运行 性能,断言检查会被关闭。因此能够随时自由地选择开启或关闭断言检查显得非常重要,而这正是Java断言特性的重要功能之一。。
默认状态下断言检查是关闭的,可以在运行时通过 参数 -ea(e nablea ssertions) 开启断言检查,与之对应的是-da (d isenableablea ssertions) 用于关闭断言检查,例如:
java -ea myPackage.myProgram //或者 java -enableassertions myPackage.myProgram
下文再进一步讲解-ea/-da参数的用法,让我们先来看看assert语句的语法吧。
assert的语法格式有以下两种:
assert expression1; assert expression1 : expression2;
expression1是布尔表达式,必须保证在程序运行是其值为真,否则将抛出AssertionError异常并终止运行。
expression2是可选的。它用于当expression1为假时,作为构造器参数传递给AssertionError异常类,因此expression2的类型必须是合法的AssertionError构造器的参数类型。AssertionError共支持7中类型的构造器参数,分别是:boolean、char、double、float、int、long和Object,它们将会根据相关规范转换成错误提示信息字符串。
参数-ea & -da详解
-ea和-da的全名为-enableassertions和-disenableassertions,全名和缩写名有同样的功能。它们的含义为开启(-ea)或关闭(-da)断言功能。
通过-ea (或-da) 参数,可以打开 (或关闭) 某些类或者某些包的断言功能,
如果-ea(或-da)不带任何参数时:表示打开 (或关闭) 所有用户类的断言检查;如果带有包名称或者类名称 则表示打开 (或关闭) 这些类或包的断言检查;如果包名称后面跟有三个点 表示这个包及其子包都 打开 (或关闭) 断言检查 ;如果只有三个点则代表无名包;
下面表格罗列了参数含义 及其 例子:
参数 | 例子 | 说明 |
-ea | java -ea | 打开所有用户类的assertion |
-da | java -da | 关闭所有用户类的assertion |
-ea:<classname> | java -ea:MyClass1 | 打开MyClass1的assertion |
-da:<classname> | java -da: MyClass1 | 关闭MyClass1的assertion |
-ea:<packagename> | java -ea:pkg1 | 打开pkg1包的assertion |
-da:<packagename> | java -da:pkg1 | 关闭pkg1包的assertion |
-ea:... | java -ea:... | 打开缺省包(无名包)的assertion |
-da:... | java -da:... | 关闭缺省包(无名包)的assertion |
-ea:<packagename>... | java -ea:pkg1... | 打开pkg1包和其子包的assertion |
-da:<packagename>... | java -da:pkg1... | 关闭pkg1包和其子包的assertion |
-esa | java -esa | 打开系统类的assertion |
-dsa | java -dsa | 关闭系统类的assertion |
综合使用 | java -dsa:MyClass1:pkg1 | 关闭MyClass1和pkg1包的assertion |
请注意上表中的-esa 和 -dsa参数,他们与-ea、-da的唯一区别是,前者用于打开(或关闭)系统类的断言检查功能。所谓系统类 是指像java.lang.Object这样的Java系统类库中的类。
另外,你还可以使用Java API来调整断言开启状态,
ClassLoader.setDefaultAssertionStatus():用于开启/关闭断言;
ClassLoader.setPackageAssertionStatus():用于开启/关闭某些包的断言;
ClassLoader.setClassAssertionStatus():用于开启/关闭某些类的断言;
ClassLoader.clearAssertionStatus:用于关闭断言;
在Eclipse中启用断言的方法:
方法1、Window-->Preferences-->Java-->Installed JREs
选择当前正在使用的JDK条目,点击 Edit... 按钮,进入JRE Definition界面: 在 Default VM Arguments 栏输入 -ea (或 -enableassertions) 参数。
方法2、Run-->RunConfigurations,选择当前程序,并点击进入Arguments标签页,在VM arguments 栏输入 -ea(-enableassertions)参数。
以上两个方法,前者针对全局设置、后者仅 仅 对当前运行的程序有效。
在Android中启用断言的方法:
设置系统属性debug.assert ,在命令行环境中执行:
adb shell setprop debug.assert 1
即可。
发表评论
-
Eclipse,javaw 通过Proxifile代理ipv6协议问题解决
2015-03-17 18:06 2755myeclipse2010升级到myeclipse2014之后 ... -
初始化EHcache CacheManager时报java.net.UnknownHostException
2014-11-13 11:45 12467工程启动时,报一下异常: [wdfportal] [201 ... -
tomcat7可能带来的问题
2013-06-27 00:31 9491、struts标签校验更加严格,如果struts标签中存在嵌 ... -
iBatis执行insert后返回主键
2013-01-18 23:55 1614iBatis插入数据后,返回主键。级联操作很有用。省去了一次的 ... -
Shallow heap & Retained heap
2012-05-16 17:09 49019所有包含Heap Profling功能的工具(MAT, You ... -
Abator —— IBatis 代码生成工具
2012-04-03 18:31 18911、在eclipse安装abator插件http://ibat ... -
使用Eclipse远程调试Tomcat
2012-03-23 22:56 1472有些时候,调试不得不用外网,比如说做支付宝的支付接口,服务器后 ... -
Java compiler level does not match the version of the installed Java project fac
2012-03-02 11:32 1277问题现象:项目图标报错“Java compiler level ... -
WebService的事务处理
2012-03-01 15:03 1527如果你只是要解决两个系统之间的事务同步问题,可以采用判断服务是 ... -
线程池(java.util.concurrent.ThreadPoolExecutor)的使用
2012-02-29 15:50 2481一、简介 线程池类为 j ... -
myeclipse 颜色设置(保护视力)
2012-02-28 09:29 20461.window -> Preferences -> ... -
Quartz表达式解析
2012-02-08 14:40 776字段 允许值 允许的特 ... -
使用iBatis中报 java.sql.SQLException: 无效的列类型异常
2011-12-15 14:46 2201<!--Content表 插入应的 ... -
非常有用的proxool属性详细解说
2011-12-13 16:19 1582Proxool连接池是sourceforge下的一个开源项目, ... -
在工程中查找自己修改的所有代码
2011-12-09 17:41 1018在工程中查找自己修改的所有代码的方法: 1.工程右键 -&g ... -
如何在Eclipse中安装和使用ibatis插件Abator
2011-12-01 21:26 49421、获得abator: http://ibatis. ... -
newCachedThreadPool线程池
2011-11-20 11:35 42981public static ExecutorService n ... -
Apache Mina – 简单的客户端/服务端应用示例
2011-11-19 23:49 5483转自http://javasight.net/2011/05/ ... -
Class.forName()、Class.forName().newInstance() 、New 三者区别!
2011-11-15 09:18 1222终于明白为什么加载数据库驱动只用Class.forName() ... -
Apache MINA 快速入门指南
2011-11-13 12:04 1629最近用到Socket套接字编程,在服务器监听方面还没有具体思路 ...
相关推荐
可以为Java复杂的测试提供简单的方法!可以加快开发进度
在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!),如果要开启断言...
断言函数assert[归纳].pdf
适用于Java大部分非空判断,有效的减少空指针问题,直接调用Assert 里面的方法就行,非常方便,你值得拥有
在讲解之前,我们先来对断言做一个基本的介绍,让大家对断言有一个大致的了解。
JAVA断言技术详解,1、What will happen when you attempt to compile and run the following code? (Assume that the code is compiled and run with assertions enabled) 1. public class AssertTest 2. { 3. ...
使用springboot框架快速搭建,封装自定义断言做业务校验,公共异常处理打印日志, 更简单的业务判断处理
eclipse如何开启断言assert调试,文档详细的讲解了配置的流程。
对于NodeJS, assert模块提供了一系列的断言测试,其实这个模块主要倾向于内部使用,但是也能被用于项目中, 可以通过require(‘assert’)的方式引入,下面本文将给大家介绍关于Node.js用断言模块assert进行单元测试的...
主要介绍了java异常处理机制示例(java抛出异常、捕获、断言),需要的朋友可以参考下
C语言断言assert的用法.pdf
VC中如何使用ASSERT断言 VC中如何使用ASSERT断言
Junit通常用于那些有明确返回值的方法的测试,而无法对返回值是void类型的方法进行测试,因为Junit的assert断言方法只适用于预期值与实际值的比较,对于void类型的方法,我们无法从它的return语句获得具体的返回值。...
详细介绍了Java陷阱之assert关键字,有需要的朋友可以参考一下
深入探讨C++中的引用和ASSERT断言,对引用和断言的理解会有很大的帮助
断言 assertassert,用于无法确定断言库的情况。API assertassert的API结合了JavaScript TDD,BDD和TBD断言库中的尖端技术,使您可以使用每种库中的最佳功能:代码 assertassert . Code . expect ( { foo : 'bar' } ...