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