在java.lang.Character中避免使用小于或等于运算符

时间:2016-10-03 01:50:58

标签: java comparison-operators

在java.lang包的Character.java中(Oracle JDK 8),

.child{
    font-family: 'Lato', sans-serif;
    font-size:14px;
    font-weight:bold;
  width:200px;
  height:45px;
  line-height:45px;
  display:inline-block;
  vertical-align:middle;
  border:2px solid #8CAAD2;
  border-radius:10px;
  text-align: center;
}

.clipart{
    vertical-align:middle;
    display:inline-block;
}

为什么作者选择在MAX_CODE_POINT中添加一个,然后使用< 运算符将结果与codePoint进行比较?

为什么不执行以下操作:使用“< =”运算符:

public static final int MIN_SUPPLEMENTARY_CODE_POINT = 0x010000;
public static final int MAX_CODE_POINT = 0X10FFFF;

public static boolean isSupplementaryCodePoint(int codePoint) {
    return codePoint >= MIN_SUPPLEMENTARY_CODE_POINT
        && codePoint <  MAX_CODE_POINT + 1;
}

在同一个文件中还有其他示例,其中一个被添加到右侧操作数,然后使用less-than运算符进行比较。出于性能原因,它是以这种方式完成的吗?有人可以解释原始推理吗?为什么不是&lt; = 运算符而不是&gt; = 运算符?今天的推理有多相关?

1 个答案:

答案 0 :(得分:1)

传统上,Java在很多情况下使用半开区间 - 也就是说,数字为>=下限的区间(即包含)和{{1}上限(即独占)。例如,请参阅<substring()binarySearch的定义。它对应于Arrays循环的编写方式:for,它查看从for (int i = lower-bound; i < upper-bound; i++)lower-bound的同一半开半圈。作者可能只是遵循这种模式。两种方式都没有性能差异。