java中assert(断言)用法

CentOS7下OpenVPN Access Server 2.12.0安装与智能分流配置指南 本文详细介绍了在CentOS7系统上安装OpenVPN Access Server 2.12.0并进行智能分流配置的完整指南。从环境准备、核心安装到智能分流策略的深度配置,提供了经过验证的优化方案和故障排查技巧,帮助用户实现高效的VPN网关部署和流量管理。 阅读详情

J2SE 1.4在语言上提供了一个新特性,就是assertion(断言)功能,它是该版本在Java语言方面最大的革新。在软件开发中,assertion是一种经典的调试、测试方式。

       assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身、有的是通过库函数等。另外,从理论上来说,通过assertion方式可以证明程序的正确性,但是这是一项相当复杂的工作,目前还没有太多的实践意义。

  在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。下面简单介绍一下Java中assertion的实现。

  1.1) 语法表示

  在语法上,为了支持assertion,Java增加了一个关键字assert。它包括两种表达式,分别如下:

  assert expression1;

  assert expression1: expression2;

  在两种表达式中,expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象(Object) ,基本类型包括boolean,char,double,float,int和long。由于所有类都为Object的子类,因此这个参数可以用于所有对象。

  1、assert

  如果为true,则程序继续执行。

  如果为false,则程序抛出AssertionError,并终止执行。

  2、assert : <错误信息表达式>

  如果为true,则程序继续执行。

  如果为false,则程序抛出java.lang.AssertionError,并输出<错误信息表达式>。

  1.2) 语义含义

  在运行时,如果关闭了assertion功能,这些语句将不起任何作用。如果打开了assertion功能,那么expression1的值将被计算,如果它的值为false,该语句强抛出一个AssertionError对象。如果assertion语句包括expression2参数,程序将计算出expression2的结果,然后将这个结果作为AssertionError的构造函数的参数,来创建AssertionError对象,并抛出该对象;如果expression1值为true,expression2将不被计算。

  一种特殊情况是,如果在计算表达式时,表达式本身抛出Exception,那么assert将停止运行,而抛出这个Exception。

  1.3) 一些assertion例子

  下面是一些Assert的例子。

  assert  0 < value;

  assert  0 < value:"value="+value;

  assert  ref != null:"ref doesn''t equal null";

  assert  isBalanced();

  1.4) 编译

  由于assert是一个新关键字,使用老版本的JDK是无法编译带有assert的源程序。因此,我们必须使用JDK1.4(或者更新)的Java编译器,在使用Javac命令时,我们必须加上-source 1.4作为参数。-source 1.4表示使用JDK 1.4版本的方式来编译源代码,否则编译就不能通过,因为缺省的Javac编译器使用JDK1.3的语法规则。

  一个简单的例子如下:

  javac -source 1.4 test.java

  1.5) 运行

  由于带有assert语句的程序运行时,使用了新的ClassLoader和Class类,因此,这种程序必须在JDK1.4(或者更高版本)的JRE下运行,而不能在老版本的JRE下运行。

  由于我们可以选择开启assertion功能,或者不开启,另外我们还可以开启一部分类或包的assertion功能,所以运行选项变得有些复杂。通过这些选项,我们可以过滤所有我们不关心的类,只选择我们关心的类或包来观察。下面介绍两类参数:

  参数 -esa和 -dsa:

  它们含义为开启(关闭)系统类的assertion功能。由于新版本的Java的系统类中,也使了assertion语句,因此如果用户需要观察它们的运行情况,就需要打开系统类的assertion功能 ,我们可使用-esa参数打开,使用 -dsa参数关闭。 -esa和-dsa的全名为-enablesystemassertions和-disenablesystemassertions,全名和缩写名有同样的功能。

  参数 -ea和 -ea:

  它们含义为开启(关闭)用户类的assertion功能:通过这个参数,用户可以打开某些类或包的assertion功能,同样用户也可以关闭某些类和包的assertion功能。打开assertion功能参数为-ea;如果不带任何参数,表示打开所有用户类;如果带有包名称或者类名称,表示打开这些类或包;如果包名称后面跟有三个点,代表这个包及其子包;如果只有三个点,代表无名包。关闭assertion功能参数为-da,使用方法与-ea类似。

  -ea和-da的全名为-enableassertions和-disenableassertions,全名和缩写名有同样的功能。

  下面表格表示了参数及其含义,并有例子说明如何使用。

  参数 例子 说明

  -ea java -ea 打开所有用户类的assertion

  -da java -da 关闭所有用户类的assertion

  -ea: java -ea:MyClass1 打开MyClass1的assertion

  -da: java -da: MyClass1 关闭MyClass1的assertion

  -ea: java -ea:pkg1 打开pkg1包的assertion

  -da: java -da:pkg1 关闭pkg1包的assertion

  -ea:... java -ea:... 打开缺省包(无名包)的assertion

  -da:... java -da:... 关闭缺省包(无名包)的assertion

  -ea:... java -ea:pkg1... 打开pkg1包和其子包的assertion

  -da:... java -da:pkg1... 关闭pkg1包和其子包的assertion

  -esa java -esa 打开系统类的assertion

  -dsa java -dsa 关闭系统类的assertion

      1.6)说明

       assertion为开发人员提供了一种灵活地调试和测试机制,它的使用也非常简单、方便。

      1.7) MyEclipse中用法

       测试代码:
    
    设置执行参数:
   
    即可。 

AI使能的SVD算子:基于深度学习的矩阵分解方法 奇异值分解(Singular Value Decomposition, SVD)是线性代数中一种重要的矩阵分解方法,广泛应用于信号处理、数据降维、推荐系统等领域。传统SVD算法虽然精确,但在处理大规模矩阵时面临计算复杂度高、内存需求大等问题。本文提出了一种基于深度学习神经网络的SVD算子实现方法,完全摒弃传统数值算法,仅使用PyTorch框架构建的神经网络模型来完成大规模信道矩阵的SVD分解与还原。 阅读详情

相关推荐

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取 一、Sentinel-2简单介绍 哨兵-2系列卫星的主要载荷多光谱成像仪拥有13个谱段,从可见光到近红外再到短波红外,空间分辨率从10m到60m,能实现全所未有的陆地海洋监测水平。其幅宽高达290KM,且A、B双星组合,覆盖能力比美国Landsat8卫星强很多。目前哨兵-2A和哨兵-2B已经实现了5天的重访时间,即使在之前仅有单颗卫星时,...

weixin_44143671的博客 2万+

java之Assert.assertEquals详细分析

目录前言1. 源码2. 结合实例3. 参数设置 前言 具体的参数设置中可以有 在此需要引入import org.junit.Assert; 提供多个断言方法 主要是比较两者参数的不同 如果相同则执行成功,不同则执行中断,抛出异常 1. 源码 断言两个对象是否相等 public static void assertEquals(Object expected, Object actual) { assertEquals((String)null, (Object)expected, (Object)a

码农研究僧的博客 9376

使用VS Code创建第一个Flutter工程

你可以使用任意文本编辑器结合命令行工具来开发Flutter应用。然而,我们推荐使用本文介绍的编辑器插件以获取更好的开发体验。这些插件提供了代码补全、代码高亮、widget辅助编辑等功能,以及为项目的运行和调试提供支持。推荐的开发工具有VS Code、Android Studio、IntelliJ。本文将重点介绍如何使用VS Code进行Flutter应用开发。

2501_91373349的博客 2126

Java中的assert关键字

    J2SE 1.4在语言上提供了一个新特性,就是assertion(断言)功能,它是该版本在Java语言方面最大的革新。在软件开发中,assertion是一种经典的调试、测试方式。          assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身、有的是通过库函数等。...

ccgkren的专栏 695

从桨叶设计到电机匹配:手把手教你调出无人机最佳动力组合

本文系统介绍了无人机动力系统的核心匹配原则,重点解析了如何通过测试与数据分析,优化螺旋桨与电机的组合,从而显著提升系统力效与续航。文章提供了从参数解读、实战测试到深度调优的完整指南,帮助开发者解决电机过热、推力不足等常见问题,实现无人机性能最大化。

weixin_29305313的博客 235

从零构建智能ai语音助手:ESP32s3+Python+大语言模型实战指南

本文详细介绍了基于ESP32S3硬件和Python后端的智能语音助手系统开发指南。系统采用ESP32S3采集语音,通过WebSocket实时传输到Python后端处理,利用大语言模型实现自然语言理解和意图识别,再通过TTS合成语音返回。文章从系统架构、工作流程、技术实现(包括OPUS编码、WebSocket通信、ESP32音频处理)等方面进行了详细讲解,并提供了分阶段学习路线和常见问题解决方案。该项目展示了物联网技术与AI技术的融合应用,相比传统语音系统具有更高的灵活性和智能性,为开发者提供了完整的实现方案

Despacito0o的博客 2629

hive 复合类型_hive 常用函数整理 9.复合类型操作

1. map类型构建: map语法: map (key1, value1, key2, value2, …)说明:根据输入的key和value对构建map类型举例:hive> Create table lxw_test as select map('100','tom','200','mary') as t from student;hive> describe lxw_test;t ...

weixin_39832628的博客 369

ZYNQ 网络通信的四种实现方案

一,ZYNQ MIO以RGMII 接口连接外部PHY芯片实现LWIP网络通信。 二,ZYNQ PS 的 ENET0/ENET1 通过 EMIO 的方式扩展至 PL,在 PL 中通过 RGMII 接口连接扩展子卡实现 LWIP 网络通信。 在PL中搭建了1个AXI 1G/2.5G Ethernet Subsystem以及1个AXI Direct Memory Access IP 核。这两个 IP核均通过AXI 总线经S_AXI_HP0 口与PS 连接,PS 通过AXI 总线对其进行配置和控..

wangjie36的博客 1万+

JAVA中断言assert和断言工具类AssertUtil的用法和逻辑

1.断言assert()的用法和语法 assert(条件语句),如果条件语句为真,继续往下执行,如果为假就会报错 public static void main(String[] args) { assert(1>0); //该条件为真,可以往下执行 System.out.println("执行成功"); } public static void main(String[] args) { assert(1<0); //该条件

军大君的博客 1万+

3D 韩系风格漫剧人设 | GPT-Image2 人设生成【附完整提示词】

宁姚同款清冷剑系美人,极致小巧鹅蛋脸,下颌线紧致纤细流畅,下巴小巧精致收窄,小脸衬得五官格外舒展,韩式水光肌,面部精细水光高光,鼻梁高光、鼻尖高光、面中苹果肌高光、唇珠高光,红棕色长卷发偏分大波浪,垂在一侧肩前,发量蓬松。发量丰厚蓬松有体积感,不贴头皮,几缕碎发自然垂落脸侧修饰脸型,长度过胸及背,发丝柔顺丝滑卷度自然,发尾自然垂落,身穿香槟色缎面挂脖长裙,挂脖设计无袖露肩露背,上半身围裹式荡领胸口垂褶,腰部堆褶收腰,修身直筒包臀裙长度到脚踝,缎面光泽感强垂坠感好,极简剪裁。纯白色背景,3D漫剧写实厚涂风。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 120

ESP32-C3模组上跑通OTA升级(3)

ESP32-C3模组上跑通OTA升级(3)

phmatthaus的专栏 1351

java中的Assert断言式表达中的assertEquals用法

1. Assert 断言式的表达方式的用法: List<User> userList = userMapper.selectList(null); Assert.assertEquals(ArrayList.class, userList.getClass()); 上面进行的断言式的操作,可以去看一下assertEquals的源码 public static v...

奔跑入坑大数据 1万+

信创服务器(麒麟 V10 SP3)安装 NVIDIA GeForce RTX 5070 驱动

本文介绍了在麒麟V10 SP3系统上安装NVIDIA RTX 5070显卡驱动的详细步骤。首先需要关闭nouveau驱动,安装必要的编译环境和工具,确保内核版本与kernel-devel完全一致。最后运行NVIDIA驱动安装程序,关键选择包括启用DKMS支持、编译模块、禁用32位兼容和nouveau驱动。整个流程适用于海光CPU和Blackwell架构GPU的国产操作系统环境。

猿小白的博客 668

Java assert断言用法

Java assert断言用法1.简介2.用法3.例子4.总结 观前提示: 本文所使用的IDEA版本为ultimate 2019.1,JDK版本为1.8.0_141。 1.简介 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。 2.用

weixin_43611145的博客 687

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java中的断言assert的用法

Java陷阱之assert关键字   一、概述         在C和C++语言中都有assert关键,表示断言。       在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。   二、语法          在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行...

m0_37768843的博客 3万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

java assert断言的用法

assert关键字是在JDK1.4才被添加,用于程序的调试。用户有两种 1.assert expression expression是逻辑运算表达式,如果expression为true,表示断言成功,程序继续执行。如果为false,会抛出AssertionError,AssertionError继承Error类,Error类与我们经常用到的Exception类都是集成于Throwable类。

记忆力不好的博客 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

assert if java_Java中的断言assert的用法

Java陷阱之assert关键字一、概述在C和C++语言中都有assert关键,表示断言。在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。二、语法在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都 将忽略!),如果要开启断...

weixin_32122595的博客 901

断言 Assert Java关键字&Spring的用法

Java中的assert 关于Java断言 Java assert关键字允许开发人员快速验证程序的某些假设或状态。 Java assert关键字是在Java 1.4中引入的,所以它已经存在很长一段时间了。然而,它仍然是一个鲜为人知的关键字,它可以极大地减少样板文件并使我们的代码更具可读性。 例如,在我们的代码中,我们经常需要验证某些可能阻止应用程序正常工作的条件。通常我们会这样写: Connection conn = getConnection(); if(conn == null) { throw

夏夏夏°的博客 1185

java中的断言assert函数_c++断言assert()函数的头文件及其用法详解

动态断言(assert)assert宏的原型定义在< assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include < assert.h>void assert( int expression );c++ assert()函数的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通...

weixin_31601663的博客 637

Java 断言 assert 用法

import org.junit.Test; public class AssertUtil {  @Test public void assertDemo1(){    boolean isTrue = 1&gt;2;//false  assert isTrue;//java.lang.AssertionError  System.out.println("程序正常");   }  @T...

熊佳佳的技术笔记 402

单元测试java断言assert用法_Node.js利用断言模块assert进行单元测试的方法

前言对于NodeJS, assert模块提供了一系列的断言测试,其实这个模块主要倾向于内部使用,但是也能被用于项目中, 可以通过require(‘assert')的方式引入,下面本文将给大家介绍关于Node.js用断言模块assert进行单元测试的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。方法如下:首先先引入断言assert模块var assert = requir...

weixin_39932611的博客 509

Java 断言 Assert 使用教程与最佳实践

介绍 Java 最鲜为人知的关键字 - assert 的用法、最佳实践、特殊用法以及替代工具。Java 老鸟也没用过。

未读代码 3741

Java 中的 断言 (assert)—— 初识 简单的使用和理解~只要这一篇就够了

首先老样子,三个方面来理解 断言是个啥(尝试初步《理解》) 如何使用(到底咋子个用,啥时候用) 个人的思考理解和总结(说话不负责时间) 断言(assert):也就是所谓的assertion,是jdk1.4后加入的新功能。 assert为动词,assertion为名词,assert是java关键字,assertion是技术名称 断言 の 定义: 官话: 断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断

Aoki的博客 1万+

关于java中assert(断言)的使用讲解

关于java中assert(断言)的使用讲解   https://www.cnblogs.com/niejianqiang/p/6551465.html   说明:写的不是很全面,有任何问题请留言,多交流,谢谢! 1.eclipse、myeclipse开启assert(断言),默认是关闭,如下: 说白了就是设置一下jvm的参数,参数是-ea或者-enableassertions ...

伏虎游侠的博客 1万+

java junit Assert断言用法示例: Assert.assertEquals(期望的结果,运算的结果)

计算demo /** * 计算器类 */ public class Calculator { /** * 加法 * @param a * @param b * @return */ public int add (int a , int b){ //int i = 3/0; return a - b; } /** * 减法 * @param a * @p

学亮编程手记 1621

转载:java assert基本用法

原始路径:https://my.oschina.net/hongliangsun/blog/1546439 java assert基本用法 assert简介: java assert(断言) 一般断言在开发和测试的阶段进行开启,用于检查程序的基本正确性,在VM arguments里面输入-ea就可以开启了。如果没有这个参数,assert在程序中将不起作用。 assert基本语法: 1. assert expression1; 2. assert expression1: expression

黄道婆的专栏 1504
上一篇: java中枚举的用法
下一篇: java中synchronized关键字详解
爪爪的瓜瓜
博客等级 码龄14年 5粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值