`

JAVA基础知识回顾-----断言机制-----随想随写

阅读更多

断言:
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基础-----面试宝典

    根据给定文件的信息,我们可以提炼出一系列与Java基础及面试相关的知识点,并进行详细的解析: ### 1. Spring、Hibernate、Struts的关系 Spring、Hibernate 和 Struts 是三个非常流行的 Java 框架,它们在 J2EE ...

    aws-java-sdk-core-1.11.46.zip

    【标题】"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-6_javaselenium_" 指的是 Selenium 的一个 Java 版本的软件包,具体是 4.0.0 的第六个 Alpha 版本。Selenium 是一个广泛使用的自动化测试工具,主要用于 web 应用程序的测试。它...

    java入门之Java2-3-4

    本教程“Java入门之Java2-3-4”是针对初学者精心设计的,旨在帮助新手快速掌握Java的基础知识和核心概念。 首先,我们来探讨Java2的部分,这是Java的一个重要阶段,它包含了Java Standard Edition(Java SE)的第二...

    java-client-6.0.0-BETA3.rar

    Java客户端库`java-client-6.0.0-BETA3.rar`是针对Appium自动化测试的一个关键组件,尤其适用于那些需要使用Java语言进行Appium测试的开发者。Appium是一款流行的开源自动化测试框架,它允许跨平台测试原生、混合...

    JAVA基础知识问答大全

    ### JAVA基础知识问答详解 ...以上是对给定文件中提到的Java基础知识问答的详细解析,涵盖了从关键字的使用、集合类的差异到垃圾收集机制的各个方面,旨在帮助初学者深入理解Java的核心概念和技术细节。

    java面试题大全-基础方面

    Java基础方面涵盖了许多重要的编程概念,对于理解和编写高质量的Java代码至关重要。以下是对这些知识点的详细解释: 1. **访问修饰符的区别** - `public`: 公有的,可以在任何地方访问。 - `private`: 私有的,...

    请不要忽视这些java基础知识

    ### 请不要忽视这些Java基础知识 #### 一、Final、Finally与Finalize的理解 在Java中,`final`、`finally`以及`finalize`是非常重要的概念,它们在不同的上下文中有着各自独特的含义。 - **Final**:关键字`final...

    selenium-java-2.47.1.zip

    这个压缩包 "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.zip" 包含了 Selenium 的 Java 版本,版本号为 3.141.59,这是一个稳定且广泛使用的版本。 Selenium WebDriver 是 Selenium 的核心组件,它提供了一种编程接口来控制浏览器,模拟...

    appium java-client-5.0.4.jar包

    《Appium Java-client-5.0.4.jar在Android Studio中的自动化测试应用》 Appium Java-client-5.0.4.jar是针对Appium自动化测试框架的一个重要组件,主要用于Java编程环境下的移动应用自动化测试。Appium本身是一个...

    Jmeter连接mysql数据库jar包mysql-connector-java-5.1.48-bin.zip

    总之,JMeter连接MySQL数据库的过程涉及了JDBC Connection Configuration的配置、mysql-connector-java驱动的引入以及JDBC Request的使用。熟练掌握这些知识点,能帮助我们在性能测试中有效地评估和优化数据库性能。...

    Java断言(assert)

    Java断言是一种 debugging 机制,允许开发者在Java程序中添加检查点,以确保程序的正确性。断言可以在开发和测试阶段使用,以确保程序的正确性和可靠性。 Java断言的历史 Java断言是从 JDK 1.4 引入的,默认情况下...

    Java语言编程规范--华为技术有限公司

    Java语言编程规范是软件开发中的重要组成部分,尤其在大型企业如华为技术有限公司中,遵循统一的编程规范至关重要。规范能够确保代码的可读性、可维护性和团队协作效率。以下是对"Java语言编程规范--华为技术有限...

    selenium-server-standalone-3.4.0&selenium;-java-3.4.0.jar

    这个标题提到的是 "selenium-server-standalone-3.4.0" 和 "selenium-java-3.4.0.jar",它们是 Selenium 3.4 版本的组成部分,专为 Java 开发者设计。下面将详细阐述这两个文件及其在测试中的作用。 `selenium-...

    Core Java -sd0808-chuanjiang2

    根据提供的文档信息,以下是从标题、描述以及部分内容中提取并扩展的核心Java知识点: ### Core Java -sd0808-chuanjiang2 #### 多态 - **定义**:多态是面向对象编程中的一个重要特性,它允许子类对象替换为父类...

Global site tag (gtag.js) - Google Analytics