zoukankan      html  css  js  c++  java
  • 关于Byte(1) 与int (1) 比较原理

    最近笔者遇到一个问题 

    
    
    Integer cameraType=1

    if
    (cameraType.intValue() == SourceTypeEnum.ANFANG.getType(){ }

    枚举值是1

    发现不同类型的两这种写法居然成立,且结果为true

    于是查了很多资料 ,发现官方API 有这种说法:

    If the operands of an equality operator are both of numeric type, or one is of numeric type and the other is convertible (§5.1.8) to numeric type, binary numeric promotion is performed on the operands

    解释:

    如果相等运算符的操作数都是数值类型,或者其中一个是数值类型,另一个可转换为数值类型(§5.1.8),则对操作数执行二进制数值提升

    这句话很明显解释了现象  首先两都是数值类型,比较的时候 通过对他们进行各自的二进制转化 来进行比较  因为两者值是一样的  所以提升后 结果一样

  • 相关阅读:
    Single Number II
    Best Time to Buy and Sell Stock
    Linked List Cycle
    Single Number
    Max Points on a Line
    Strategy
    LRU Cache
    Word Break II
    Text Justification
    Median of Two Sorted Arrays
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/11116358.html
Copyright © 2011-2022 走看看