我正在查看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;
谁能解释一下为什么需要按位或?
为什么只是int ASM4 = 4
?
最佳答案
该值不是 4;是 262144。大概他们这样写是因为他们将其视为由三部分组成的数字 4.0.0,每一部分占用一个字节。如果他们写成int ASM4 = 262144;
,读者就不清楚了。该表达式在编译时计算,因此没有运行时成本。
关于java - Asm api 版本定义中的按位 OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868233/