java中三元运算符_java中三元运算符详解
三元运算符:
顾名思义,三元运算符需要三个操作数。
语法为:条件表达式?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
其逻辑为:“如果为真执行第一个,否则执行第二个。”
比如,java中基本类型 boolean的包装类 Boolean中“.valueOf(boolean b)”方法的源码定义:
public static Boolean volueOf (boolean b){
ruturn b ? Boolean.True:Boolean.False;
}
解析:方法体中的表达式用到了三元运算符,对应于上面的说明,其中:
条件表达式:b
表达式1: Boolean.True
表达式2: Boolean.False
方法体中表达式整体意思:返回变量b的引用(这个引用指向一个Boolean类型的instance),这个引用的获取需要经过三元运算符进行逻辑判断,判断过程如下:
当b的值为true时,返回Boolean.True
当b的值为false时,返回Boolean.False
ps:此处,True是Boolean类中的一个属性,但是这个属性本身的类型是类类型,且看其源码——
public static final Boolean TRUE = new Boolean(true);
对应源码中注释:
/**
* The Boolean
object corresponding to the primitive
* value true
. (翻译:布尔对象对应于原始值true)
*/
总结:三元运算符中的置于"?"前方的条件表达式(java中常称作关系表达式)准确的说是布尔表达式,形式多种多样,只要计算的结果是一个布尔量即可
补充下条件表达式资料:
条件表达式:条件表达式由条件运算符构成,并常用条件表达式构成一个赋值语句。条件运算符优先级高于赋值、逗号运算符,低于其他运算符。
口诀:前真后假
性质:右结合性
若有多个条件表达式像这样连在一起:x=?:?:···执行顺序是从右到左依次判断再求出最后的x,即所谓的右结合性。
例如: a=1,b=2,c=3,d=4,则条件表达式a
java中三元运算符_java中三元运算符详解相关推荐
- java代码轻量级锁_Java轻量级锁原理详解(Lightweight Locking)
转自http://www.cnblogs.com/redcreen/archive/2011/03/29/1998801.html 大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的 ...
- java单例设计模式_Java设计模式之单例模式详解
在Java开发过程中,很多场景下都会碰到或要用到单例模式,在设计模式里也是经常作为指导学习的热门模式之一,相信每位开发同事都用到过.我们总是沿着前辈的足迹去做设定好的思路,往往没去探究为何这么做,所以 ...
- java connection 单例_Java设计模式之单例模式详解
Java设计模式之单例模式详解 什么是设计模式 设计模式是在大量的实践中总结和理论之后优选的代码结构,编程风格,以及解决问题的思考方式.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可 ...
- java指数表示法_Java指数计数法详解
Java指数计数法详解 时间:2017-10-16 来源:华清远见Java培训中心 Java指数计数法并不是一个很难的运算,关键是你要理解应用,很多朋友不理解Java指数计数法,所以也无从运用 ...
- java方法怎么写_java方法定义格式详解,java方法怎么写?
对于java方法你了解多少呢?你知道java方法应该如何写吗?下面要给大家介绍的就是和java方法相关的内容,一起来了解一下这个概念吧. 在学习运算符的时候,都为每个运算符单独的创建一个新的类和mai ...
- java解析json数据_java解析JSON数据详解
JSON是目前最流行的轻量级数据交换语言(没有之一).尽管他是javaScript的一个子集.但由于其是独立与语言的文本格式,它几乎可以被所有编程语言所支持. 以下是对java语言中解析json数据的 ...
- java中object类型_Java常用类object详解
1.Object概述: 类Object是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法. 2.构造方法详细信息: Object只有一个无参构造方法,因为ob ...
- java中字符类型_Java字符类型(详解)
[1]Java中使用单引号来表示字符常量,字符型在内存中占2个字节. char 类型用来表示在Unicode编码表中的字符.Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有655 ...
- java final修饰符_java final修饰符详解,final修饰方法
之前给大家讲过java final修饰符final修饰变量方面的知识,那么下面要继续给大家讲到的就是final修饰方法方面的知识,一起来了解一下吧. final修饰的方法不能被重写,假如因为一些原因, ...
- java enum 定义属性_java enum(枚举)使用详解 + 总结
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容: 8. 总结 ...
最新文章
- mmse评估量表_简易精神状态评价量表(mmse量表) 打印版.doc
- 002_CSS基础语法
- 这年头,好文案都被它承包了!
- PMP 英文术语缩写
- python语言格式化输出_Python字符串格式化输出
- vue axios 配置上服务器后报错'Access-Control-Allow-Origin' header](亲测)
- 大数据WEB阶段(九)Myeclipse中配置Tomcat并发布项目
- Git提交空文件夹的技巧
- 老司机教你如何优雅地完成一个小项目测试
- 关于防火墙以及其作用
- YII2.0电商平台开发笔记
- 自动化测试Robot FrameWork框架
- @Resource()注解报红
- matlab中希腊字母相除,如何在matlab中输入希腊字母
- 计算机应用基础考查方案,《计算机应用基础》考查方案
- 高等数学(第七版)同济大学 总习题三(前10题) 个人解答
- 2020JDK1.8安装教程,配有每一步的图文安装细节,一次就可安装成功!
- box2d 碰撞检测_box2d 碰撞检测 - by 小Ka
- 分布式中间件之Dubbo详解
- 国产软件爆发!中国版Navicat,SQL Studio成数据库管理工具热门