断言:
1.定义:JAVA中的断言用来对程序的状态进行某种判断;它包含一个布尔表达式,
在程序的正常运行中,他应该为true。另外,断言用于保证程序的正确性,
避免逻辑错误;
2.格式:
a) assert expression; b) assert expression:detaMessage;
解释:expression----布尔表达式
detaMessage----expression为false,显示的消息
如果expression为true,则程序正常往下执行
如果expression为false,则程序抛出AssertionError
3.判断断言是否开启
boolean isOpen=false; assert isOpen=true; System.out.println("isOpen: "+isOpen);
解释:如果isOpen为true则证明断言开启;
如果isOpen为false则证明断言关闭;
4.开启/关闭断言:断言可以局部开启,因此断言不具备继承性
eclipse中开启断言:
Run--->Run Configurations--->右边选择Arguments--->
在下面的VM arguments文本框中输入-ea开启断言
如果输入-da表示禁止断言
5.断言实例:
ep1:
完整代码:
package com.ahuiby.test; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub int i; int sum=0; for(i=0;i<10;i++){ sum=sum+i; } assert i==4:"Hello World"; assert sum>10&&sum<5*10:"sum is"+sum; System.out.println("sum = "+sum); } }
运行结果:
Exception in thread "main" java.lang.AssertionError: Hello World at com.ahuiby.test.Test.main(Test.java:13)
ep2:
完整代码:
package com.ahuiby.test; class ObjectStack{ private static final int defaultSize=10; private int size; private int top; private Object[] listarray; public ObjectStack(){ initialize(defaultSize); } public ObjectStack(int size){ initialize(size); } public void initialize(int size){ this.size=size; this.top=0; listarray=new Object[size]; } //进栈 public void push(Object it){ assert top<size:"栈溢出"; listarray[top++]=it; } //出栈,并返回出栈的那个元素 public Object pop(){ assert !isEmpty():"栈已空"; return listarray[--top]; } //获取栈顶元素 public Object topValue(){ assert !isEmpty():"栈已空"; return listarray[top-1]; } public boolean isEmpty(){ return top==0; } } public class Test { public static void main(String[] args) { // TODO Auto-generated method stub ObjectStack os=new ObjectStack(); os.push(new Integer(30)); os.push(new Integer(20)); os.push(new Integer(10)); System.out.println(os.pop()); System.out.println(os.pop()); System.out.println(os.pop()); System.out.println(os.pop());//断言执行 } }
运行结果:
10 20 30 Exception in thread "main" java.lang.AssertionError: 栈已空 at com.ahuiby.test.ObjectStack.pop(Test.java:31) at com.ahuiby.test.Test.main(Test.java:58)
相关推荐
根据给定文件的信息,我们可以提炼出一系列与Java基础及面试相关的知识点,并进行详细的解析: ### 1. Spring、Hibernate、Struts的关系 Spring、Hibernate 和 Struts 是三个非常流行的 Java 框架,它们在 J2EE ...
【标题】"aws-java-sdk-core-1.11.46.zip" 是一个包含AWS Java SDK核心库的压缩包,版本号为1.11.46。这个SDK是亚马逊Web服务(AWS)提供的用于Java开发人员的工具集,允许他们轻松地与AWS的各种服务进行交互,包括...
标题 "selenium-java-4.0.0-alpha-6_javaselenium_" 指的是 Selenium 的一个 Java 版本的软件包,具体是 4.0.0 的第六个 Alpha 版本。Selenium 是一个广泛使用的自动化测试工具,主要用于 web 应用程序的测试。它...
本教程“Java入门之Java2-3-4”是针对初学者精心设计的,旨在帮助新手快速掌握Java的基础知识和核心概念。 首先,我们来探讨Java2的部分,这是Java的一个重要阶段,它包含了Java Standard Edition(Java SE)的第二...
Java客户端库`java-client-6.0.0-BETA3.rar`是针对Appium自动化测试的一个关键组件,尤其适用于那些需要使用Java语言进行Appium测试的开发者。Appium是一款流行的开源自动化测试框架,它允许跨平台测试原生、混合...
### JAVA基础知识问答详解 ...以上是对给定文件中提到的Java基础知识问答的详细解析,涵盖了从关键字的使用、集合类的差异到垃圾收集机制的各个方面,旨在帮助初学者深入理解Java的核心概念和技术细节。
Java基础方面涵盖了许多重要的编程概念,对于理解和编写高质量的Java代码至关重要。以下是对这些知识点的详细解释: 1. **访问修饰符的区别** - `public`: 公有的,可以在任何地方访问。 - `private`: 私有的,...
### 请不要忽视这些Java基础知识 #### 一、Final、Finally与Finalize的理解 在Java中,`final`、`finally`以及`finalize`是非常重要的概念,它们在不同的上下文中有着各自独特的含义。 - **Final**:关键字`final...
这个压缩包 "selenium-java-2.47.1.zip" 包含了Selenium的Java版本,具体是2.47.1的更新,发布于2015年8月。这个版本在当时是一个稳定且广泛使用的版本,它提供了丰富的API,支持多种浏览器,并且可以与各种测试框架...
本压缩包 "selenium-java-3.141.59.zip" 包含了 Selenium 的 Java 版本,版本号为 3.141.59,这是一个稳定且广泛使用的版本。 Selenium WebDriver 是 Selenium 的核心组件,它提供了一种编程接口来控制浏览器,模拟...
《Appium Java-client-5.0.4.jar在Android Studio中的自动化测试应用》 Appium Java-client-5.0.4.jar是针对Appium自动化测试框架的一个重要组件,主要用于Java编程环境下的移动应用自动化测试。Appium本身是一个...
总之,JMeter连接MySQL数据库的过程涉及了JDBC Connection Configuration的配置、mysql-connector-java驱动的引入以及JDBC Request的使用。熟练掌握这些知识点,能帮助我们在性能测试中有效地评估和优化数据库性能。...
Java断言是一种 debugging 机制,允许开发者在Java程序中添加检查点,以确保程序的正确性。断言可以在开发和测试阶段使用,以确保程序的正确性和可靠性。 Java断言的历史 Java断言是从 JDK 1.4 引入的,默认情况下...
Java语言编程规范是软件开发中的重要组成部分,尤其在大型企业如华为技术有限公司中,遵循统一的编程规范至关重要。规范能够确保代码的可读性、可维护性和团队协作效率。以下是对"Java语言编程规范--华为技术有限...
这个标题提到的是 "selenium-server-standalone-3.4.0" 和 "selenium-java-3.4.0.jar",它们是 Selenium 3.4 版本的组成部分,专为 Java 开发者设计。下面将详细阐述这两个文件及其在测试中的作用。 `selenium-...
根据提供的文档信息,以下是从标题、描述以及部分内容中提取并扩展的核心Java知识点: ### Core Java -sd0808-chuanjiang2 #### 多态 - **定义**:多态是面向对象编程中的一个重要特性,它允许子类对象替换为父类...