- 浏览: 772236 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 2791myeclipse2010升级到myeclipse2014之后 ... -
初始化EHcache CacheManager时报java.net.UnknownHostException
2014-11-13 11:45 12510工程启动时,报一下异常: [wdfportal] [201 ... -
tomcat7可能带来的问题
2013-06-27 00:31 9831、struts标签校验更加严格,如果struts标签中存在嵌 ... -
iBatis执行insert后返回主键
2013-01-18 23:55 1646iBatis插入数据后,返回主键。级联操作很有用。省去了一次的 ... -
Shallow heap & Retained heap
2012-05-16 17:09 49290所有包含Heap Profling功能的工具(MAT, You ... -
Abator —— IBatis 代码生成工具
2012-04-03 18:31 19331、在eclipse安装abator插件http://ibat ... -
使用Eclipse远程调试Tomcat
2012-03-23 22:56 1510有些时候,调试不得不用外网,比如说做支付宝的支付接口,服务器后 ... -
Java compiler level does not match the version of the installed Java project fac
2012-03-02 11:32 1318问题现象:项目图标报错“Java compiler level ... -
WebService的事务处理
2012-03-01 15:03 1560如果你只是要解决两个系统之间的事务同步问题,可以采用判断服务是 ... -
线程池(java.util.concurrent.ThreadPoolExecutor)的使用
2012-02-29 15:50 2508一、简介 线程池类为 j ... -
myeclipse 颜色设置(保护视力)
2012-02-28 09:29 20881.window -> Preferences -> ... -
Quartz表达式解析
2012-02-08 14:40 807字段 允许值 允许的特 ... -
使用iBatis中报 java.sql.SQLException: 无效的列类型异常
2011-12-15 14:46 2241<!--Content表 插入应的 ... -
非常有用的proxool属性详细解说
2011-12-13 16:19 1610Proxool连接池是sourceforge下的一个开源项目, ... -
在工程中查找自己修改的所有代码
2011-12-09 17:41 1048在工程中查找自己修改的所有代码的方法: 1.工程右键 -&g ... -
如何在Eclipse中安装和使用ibatis插件Abator
2011-12-01 21:26 49741、获得abator: http://ibatis. ... -
newCachedThreadPool线程池
2011-11-20 11:35 43034public static ExecutorService n ... -
Apache Mina – 简单的客户端/服务端应用示例
2011-11-19 23:49 5526转自http://javasight.net/2011/05/ ... -
Class.forName()、Class.forName().newInstance() 、New 三者区别!
2011-11-15 09:18 1260终于明白为什么加载数据库驱动只用Class.forName() ... -
Apache MINA 快速入门指南
2011-11-13 12:04 1660最近用到Socket套接字编程,在服务器监听方面还没有具体思路 ...
相关推荐
在JAVA中,可以使用`assert`关键字来声明断言,例如`assert value > 0;`,表示期望value的值大于0。如果断言的条件不满足,程序将抛出AssertionError。断言通常在开发和测试阶段启用,在生产环境中可以禁用,以提高...
描述中“详细介绍了Java陷阱之assert关键字”表明了文章将系统性地讲解assert关键字的各个方面,而“有需要的朋友可以参考一下”则意味着这篇文章为那些需要深入了解Java断言功能的开发者提供了参考。 在标签中,...
import static org.junit.Assert.*; public class MyClassTest { @Test public void testMethod1() { MyClass myObject = new MyClass(); int result = myObject.method1(); assertEquals(expectedValue, ...
2. **断言与异常处理**:学习如何使用JUnit提供的各种断言方法(如assertEquals、assertTrue等)来验证预期结果,以及如何捕获和处理测试过程中可能出现的异常。 3. **测试设计原则**:讲解如何编写符合 Arrange-...
JUnit通过提供一系列断言(Assert)方法,如`assertEquals()`用于比较预期结果与实际结果,`assertFalse()`和`assertTrue()`用于验证条件是否为真或假,`assertNotNull()`和`assertNull()`用于检查对象是否为空,`...
### Java面试题——基础篇60题解析 #### 1. 作用域 public,private,protected 以及不写时的区别 在Java中,类成员(如变量、方法等)的作用域可以通过不同的修饰符来控制。具体如下: - **public**:公开的,...
6. **什么时候用 assert** - 断言用于验证程序的假设条件是否成立,主要用于开发和测试阶段。 - 在生产环境中,通常会关闭断言以优化性能。 7. **String 对象创建** - `String s = new String("xyz");` 创建了...
总的来说,Java面试题中的这两个知识点——断言和JDBC——是Java开发者必备的基础技能,它们在程序调试、错误检测以及数据库操作中起着至关重要的作用。掌握这两点有助于编写更稳定、可维护的Java应用程序。
Java架构测试库——ArchUnit与最佳实践 在Java开发中,确保代码的架构质量是至关重要的,这有助于维持系统的可维护性、可扩展性和可测试性。ArchUnit是一款专门用于测试Java应用程序架构的库,它提供了强大的API,...
6. **断言(Assertion)**:在`compareResultToReportng`方法中,使用了`Assert.assertEquals()`进行断言,比较实际值和预期值是否相等。如果第一个预期值比对失败,后续的比对将不再进行;如果断言失败,程序会立即...
除了异常处理和断言之外,Java还提供了一种更高级别的错误处理机制——错误处理。错误通常是不可恢复的情况,比如内存溢出或系统级错误。 - **错误处理**:错误处理通常涉及到系统级问题或资源耗尽的情况,这些问题...
`assert`关键字在Java中用于断言,通常在测试和调试阶段使用,用来检查程序状态是否符合预期。在生产环境中,通常会关闭断言以提高性能。 垃圾收集器(Garbage Collector, GC)是Java的重要特性,它自动管理内存,...
它不仅是Java编程语言的事实标准单元测试库,而且其设计思想——测试先行和测试驱动的开发(TDD),极大地推动了软件工程实践的发展。JUnit的白盒测试特性,意味着开发者可以深入到代码内部,针对特定接口和方法编写...
单元测试是软件开发过程中的一个重要环节,其主要目的是验证软件中的最小可测试单元——通常是单个函数或者方法——是否按照预期的方式工作。通过单元测试,开发者可以在早期阶段发现并修复错误,从而提高软件的质量...
9. **断言验证**: 测试脚本通常需要进行断言来验证预期的结果是否实现。例如,`Assert.assertTrue(driver.getTitle().contains("Welcome"))`可以检查页面标题是否包含"Welcome"。 10. **测试框架集成**: Selenium...
通过本文介绍的技术栈组合——Selenium + Java + TestNG + Maven,可以构建出一套高效、灵活且易于维护的自动化测试框架。通过对 Selenium 和 TestNG 的封装,大大降低了测试脚本的复杂度,同时通过 ReportNG 生成...
每个测试类都是JUnit TestCase类的子类,通过Assert类执行断言来测试应用功能。测试活动时,ActivityInstrumentationTestCase2类允许使用探测功能,实现UI测试自动化,通过触摸事件模拟用户交互。 整体上,本文提出...
使用JUnit进行单元测试时,开发者可以断言(Assert)代码的输出是否符合预期。JUnit提供了多种断言方法,如assertEquals()用于比较预期值与实际值,assertTrue()用于验证条件是否为真,assertFalse()用于验证条件...
使用Java的断言(assert)或JUnit框架可以帮助进行这些测试。 总的来说,“javase实训项目_俄罗斯方块”是一个集成了Java基础、GUI编程、多线程、事件处理和文件操作等多个核心知识点的综合实践项目,对提升Java...
Java语言的第三章主要讲解了Java程序的基本构造单元——语句。语句是程序中执行特定任务的最小语法单位,通常包含表达式。本章详细介绍了多种类型的语句及其应用场景。 1. 空语句:仅包含一个分号,不执行任何操作...