java 表达式短路_什么是短路?在Java中进行编程时如何使用短路?
短路是确定结果后立即停止对表达式求值的地方。因此,例如:
if (a == b || c == d || e == f) {
// Do something
}
如果a == b为true,则c == d并且e == f根本不会进行评估,因为表达式的结果已经确定。如果a == b为假,c == d则被评估;如果是真的,则e == f永远不会进行评估。这似乎没有什么区别,但请考虑:
if (foo() || bar() || baz()) {
// Do something
}
如果foo()返回true,那么bar与baz被从来没有所谓,因为表达式的结果已经确定。所以,如果bar还是baz已经不仅仅是返回的东西(一个其他一些效果副作用),这些影响不会发生。
短路的一个很好的例子与对象引用有关:
if (a != null && a.getFoo() != 42) {
// Do something
}
a.getFoo()通常会抛出一个NullPointerException如果a是null,但由于表达短路,如果a != null是false,该a.getFoo()部分不会发生,所以我们没有得到一个异常。
请注意,并非所有表达式都是短路的。的||和&&运营商都短路,但|并&不是,也不是*或/; 实际上大多数操作员都不是。
java 表达式短路_什么是短路?在Java中进行编程时如何使用短路?相关推荐
- java表达式1 29的计算结果是,java表达式陷阱 - Funcy1122的个人空间 - OSCHINA - 中文开源技术交流社区...
1.赋值运算 1.1 表达式直接赋值 int a = 1; a = 2; System.out.println(a); 1.2 同一表达式多个赋值 int a = 10; int b = a+(a=5 ...
- java编码技巧_编码小技巧 让java编程更便捷
经过一段时间的编码,程序员们或多或少会形成自己的编码习惯,好的习惯能帮助自己写出更好的代码,方便程序的维护.抱着侥幸心理,对"可能会出错"的代码没有做"防错性程序设计&q ...
- java 故障排查_目前最全的 Java 服务问题排查套路
问题分类: CPU问题 内存问题(GC问题.内存泄漏. OOM,Coredump 等) I/O问题 问题排查工具箱: 系统级别的工具: top:查看系统/进程cpu.内存.swap等资源占用情况的必备 ...
- eclipse写java实现端口_使用eclipse(windows)在java中使用IPv6地址和端口号创建套接字...
当我尝试使用IPv4地址创建套接字时,它很成功,但是当我尝试使用IPv6地址和端口号创建套接字时,它会引发异常: java.net.SocketException: Network is unreac ...
- java lock 效率_工作常用4种Java线程锁的特点,性能比较、使用场景
多线程的缘由 在出现了进程之后,操作系统的性能得到了大大的提升.虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求. 使用多线程的理由之一是和进程相比,它是一种非常花 ...
- java布道师_初探第10代Java帝国:11位Java专家道出了他们最喜欢的功能
Java 10发布后.我们第一时间与11位Java专家讨论了一波.顺便深入挖掘了他们在Java 10中最喜欢的功能和对未发布的JDK11版本的一些看法. " Java 10对Java 9来说 ...
- java 数据对_数据表与简单java类(一对多)
emp表:empno,ename,job,sal,comm,mgr,deptno dept表:deptno,dname,loc 要求可以通过程序描述出如下对应关系 一个部门有多个部员,并且可以输出一个 ...
- java异常处理框架_深入探索 高效的Java异常处理框架(1)
摘要:本文从Java异常最基本的概念.语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对比Spring的异常处理框架,阐述了异常处理的基本原则.并且作者提出了自己处理一个大型应用 ...
- java 判断进程状态_获取远程服务器上 Java 进程的运行状态
为了安全考虑, 有些服务器会被限制登录. 本文介绍如何获取远程服务器上 Java 进程的运行状态. 启动 jstatd 服务 在服务器端启动 jstatd 服务后, 远程的机器可以通过 rmi 协议获 ...
最新文章
- LigerUI——天外飞仙
- 3.菜鸟教你一步一步开发 web service 之 axis 服务端创建
- getrlimit读取进程能打开的最大文件描述符
- SAP SMW0 上传EXCEL模板遇到的问题
- 编程实现表1(L的输入-输出模式分布),证实表1的正确性
- set 数据类型的应用场景
- Python精通-Python集合操作详解
- 3198元起!魅族16s开启预约:4月28日全渠道首发
- ScrollView中嵌套recycleView 出现的不显示,显示不全,终极解决方案
- 【JSOI2007】【BZOJ1029】建筑抢修(贪心,堆)
- tomcat配置重定向_在Tomcat上配置SSL以及从HTTP到HTTPS的设置自动重定向的步骤
- 虚拟机体验NAS私人云全揭秘:深度揭秘虚拟机安装群晖DSM6.2/6.2.1/6.2.2/6.2.3系统洗白全过程(附赠洗白码)
- 索尼z3c d5833港版救砖强刷说明
- 线性约束最小方差准则
- 华为mate30怎么更换鸿蒙系统,怎么升级到鸿蒙2.0系统呀
- python爬虫:爬取全国航班信息
- FVCOM 环境基础配置(1) intel编译器 下载与安装
- VMWare安卓安卓系统虚拟机
- 程序员跳槽全攻略(路漫漫其修远兮)
- js如何截取某个字符串前面所有的字符串