Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java8是一年一次的实现。逻辑运算符是什么意思?_Java_Api_Java 8 - Fatal编程技术网

Java8是一年一次的实现。逻辑运算符是什么意思?

Java8是一年一次的实现。逻辑运算符是什么意思?,java,api,java-8,Java,Api,Java 8,我正在研究DateAPI的Java8实现,发现了这一点 根据ISO proleptic检查年份是否为闰年 日历系统规则 此方法将当前规则应用于整个闰年 时间线。一般来说,如果一年可以被一个数整除,那么它就是闰年 四个没有余数。然而,可以被100整除的年份不是闰年 年,但可被400整除的年除外 例如,1904年是闰年,它可以被4整除。1900年不是一年 闰年可以被100整除,而2000年是闰年 它可以被400整除 该计算是proleptic的——将相同的规则应用到far中 未来和遥远的过去。这在历

我正在研究DateAPI的Java8实现,发现了这一点

根据ISO proleptic检查年份是否为闰年 日历系统规则

此方法将当前规则应用于整个闰年 时间线。一般来说,如果一年可以被一个数整除,那么它就是闰年 四个没有余数。然而,可以被100整除的年份不是闰年 年,但可被400整除的年除外

例如,1904年是闰年,它可以被4整除。1900年不是一年 闰年可以被100整除,而2000年是闰年 它可以被400整除

该计算是proleptic的——将相同的规则应用到far中 未来和遥远的过去。这在历史上是不准确的,但却是正确的 适用于ISO-8601标准

但是给我们一年的时间&3

什么是第一年&3年

(prolepticYear&3)=0
检查
prolepticYear
的两个最低有效位是否为
0

这相当于检查
prolepticYear
是否可被4整除

换句话说,

(prolepticYear & 3) == 0
相当于

(prolepticYear % 4) == 0

prolecticyear&3
让我们把它稍微不同一点<二进制代码>3是
11
。因此,
prolepticYear
&
11
只有在
prolepticYear
的最后两位为零时才会为零。(这实际上被称为位掩码)

现在想想也有点不同:

 0100 - (4 in decimal, has last two bits zero)
 1000 - (8 in decimal, has last two bits zero)
 1100 - (12 in decimal, has last two bits zero)

 ... these are numbers divisible by four
通常
&
操作比
%
更快


有时
&
也被用于其他目的(
%
操作可能会产生负数,而
&
不会-这就是如何根据
键#hashcode
的可能负值来选择
HashMap
中的bucket,但这里不是这种情况)

prolepticYear&3
相当于
prolepticYear%4
(至少在年份>=0)。
(prolepticYear % 4) == 0
 0100 - (4 in decimal, has last two bits zero)
 1000 - (8 in decimal, has last two bits zero)
 1100 - (12 in decimal, has last two bits zero)

 ... these are numbers divisible by four