java三目运算符

  1. 三目运算符语法
    expression1 ? expression2 : expression3
    Java虚拟机在编译三目运算时是以 “?” 和 “:” 来判断各位置的代码充当的结构。“?”前作为一部分,“?”和“:”中间作为一部分,“:”后作为一部分 。
    a. business = null != model ? model.getBu() : ""; 这句,三目运算符的优先级要高于赋值预算,所以先运算三目预算
    b. int temp = 0 < 1 ? c = c + 1 : d = d + 1 , 无法编译通过,三目运算符号优先级高, 实际会被解析成 int temp = (0 < 1 ? c = c + 1 : d) = d + 1 , 导致编译错误。

  2. 三目运算符的性能比if-else结构要稍微高一点,但是在日常程序开发中几乎可以忽略不计

  3. 三目运算符写出的代码相对比较简介,但是相对易读性会有所损失

  4. 三目运算符会有类型转换&自动拆箱等问题一般都是默认转换为高精度类型
    a. 精度由低到高: byte<short<char<int<float<double
    b. 封装数据类型使用时一定要注意,务必要做”非空判断“ & 统一三目运算过程中的数据类型

参考:http://blog.csdn.net/tiwerbao/article/details/34244139
http://blog.csdn.net/u011983531/article/details/49227305

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容