三元运算符:

顾名思义,三元运算符需要三个操作数。

语法为:条件表达式?表达式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中三元运算符详解相关推荐

  1. java代码轻量级锁_Java轻量级锁原理详解(Lightweight Locking)

    转自http://www.cnblogs.com/redcreen/archive/2011/03/29/1998801.html 大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的 ...

  2. java单例设计模式_Java设计模式之单例模式详解

    在Java开发过程中,很多场景下都会碰到或要用到单例模式,在设计模式里也是经常作为指导学习的热门模式之一,相信每位开发同事都用到过.我们总是沿着前辈的足迹去做设定好的思路,往往没去探究为何这么做,所以 ...

  3. java connection 单例_Java设计模式之单例模式详解

    Java设计模式之单例模式详解 什么是设计模式 设计模式是在大量的实践中总结和理论之后优选的代码结构,编程风格,以及解决问题的思考方式.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可 ...

  4. java指数表示法_Java指数计数法详解

    Java指数计数法详解 时间:2017-10-16     来源:华清远见Java培训中心 Java指数计数法并不是一个很难的运算,关键是你要理解应用,很多朋友不理解Java指数计数法,所以也无从运用 ...

  5. java方法怎么写_java方法定义格式详解,java方法怎么写?

    对于java方法你了解多少呢?你知道java方法应该如何写吗?下面要给大家介绍的就是和java方法相关的内容,一起来了解一下这个概念吧. 在学习运算符的时候,都为每个运算符单独的创建一个新的类和mai ...

  6. java解析json数据_java解析JSON数据详解

    JSON是目前最流行的轻量级数据交换语言(没有之一).尽管他是javaScript的一个子集.但由于其是独立与语言的文本格式,它几乎可以被所有编程语言所支持. 以下是对java语言中解析json数据的 ...

  7. java中object类型_Java常用类object详解

    1.Object概述: 类Object是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法. 2.构造方法详细信息: Object只有一个无参构造方法,因为ob ...

  8. java中字符类型_Java字符类型(详解)

    [1]Java中使用单引号来表示字符常量,字符型在内存中占2个字节. char 类型用来表示在Unicode编码表中的字符.Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有655 ...

  9. java final修饰符_java final修饰符详解,final修饰方法

    之前给大家讲过java final修饰符final修饰变量方面的知识,那么下面要继续给大家讲到的就是final修饰方法方面的知识,一起来了解一下吧. final修饰的方法不能被重写,假如因为一些原因, ...

  10. java enum 定义属性_java enum(枚举)使用详解 + 总结

    enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容: 8. 总结 ...

最新文章

  1. mmse评估量表_简易精神状态评价量表(mmse量表) 打印版.doc
  2. 002_CSS基础语法
  3. 这年头,好文案都被它承包了!
  4. PMP 英文术语缩写
  5. python语言格式化输出_Python字符串格式化输出
  6. vue axios 配置上服务器后报错'Access-Control-Allow-Origin' header](亲测)
  7. 大数据WEB阶段(九)Myeclipse中配置Tomcat并发布项目
  8. Git提交空文件夹的技巧
  9. 老司机教你如何优雅地完成一个小项目测试
  10. 关于防火墙以及其作用
  11. YII2.0电商平台开发笔记
  12. 自动化测试Robot FrameWork框架
  13. @Resource()注解报红
  14. matlab中希腊字母相除,如何在matlab中输入希腊字母
  15. 计算机应用基础考查方案,《计算机应用基础》考查方案
  16. 高等数学(第七版)同济大学 总习题三(前10题) 个人解答
  17. 2020JDK1.8安装教程,配有每一步的图文安装细节,一次就可安装成功!
  18. box2d 碰撞检测_box2d 碰撞检测 - by 小Ka
  19. 分布式中间件之Dubbo详解
  20. 国产软件爆发!中国版Navicat,SQL Studio成数据库管理工具热门

热门文章

  1. 树莓派4B gpio readall 出现Oops - unable to determine board type
  2. 华为q1设置虚拟服务器,华为Q1路由器设置上网步骤 手机设置路由器的方法
  3. linux 软连接、硬连接创建、删除,说明
  4. android 人脸检测
  5. java不定参数方法
  6. 微信FileStorage MsgAttach文件太乱怎么办?教你用Python解决
  7. python3抓取数据_python3抓取到的拉勾数据统计
  8. 数据库SQL查询习题2:设教学数据库Education有三个关系
  9. 3G技术必将加速中小企业信息化进程
  10. 循环数组的方法及区别