我正在浏览asm的源代码,并找到了以下定义
http://grepcode.com/file/repo1.maven.org/maven2/org.jodd/jodd-proxetta/3.5.2/jodd/asm5/Opcodes.java
int ASM4 = 4 << 16 | 0 << 8 | 0;
有人可以解释为什么需要按位OR吗?
为什么只是int ASM4 = 4
?
答案 0 :(得分:4)
值不是4;据推测,他们是这样编写的,因为他们认为它是一个由三部分组成的数字4.0.0,每个部分占用一个字节。如果他们写了int ASM4 = 262144;
,那读者就不清楚了。表达式在编译时进行评估,因此没有运行时成本。