1
zacharyjia 2019-12-21 16:08:43 +08:00
操作符在编译的时候会编译成字节码 -> javac 包含在 openjdk 里 -> openjdk 开源
结论:能 (以上纯属本人瞎猜🤪 |
2
cedoo22 2019-12-21 16:10:33 +08:00
javac 编译成.class, 再 javap 一下,查一下 jvm opcode 就知道了。
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-7.html |
3
secondwtq 2019-12-21 17:02:17 +08:00
操作符的实现在 javac 里面
Scala 和 Kotlin 之类的可以直接看 |
4
ztcaoll222 2019-12-21 17:08:58 +08:00
你是说.class 文件的 bytecode?
idea 的话, 双击 shift, 输入 show bytecode |
5
kilen3a 2019-12-21 17:19:33 +08:00
如果你是说 class 文件中的操作符的话,++ 一般是 iinc,其他的可以看看 JVMS 的定义;如果是说 c1、c2 的实现的话,像 Hotspot 的可以看看 src/share/vm/interpreter/bytecodeInterpreter.cpp 、src/share/vm/opto/parser2.cpp 这些源码
|
6
guxingke 2019-12-21 17:35:11 +08:00
主要还是看 编译之后的 class 内方法部分的 指令 了.
若有兴趣探究一下 jvm 的实现. [mini-jvm]( https://github.com/guxingke/mini-jvm) |