宏不是标准Java语言的一部分,并且我不知道主流Java工具,IDE等都支持任何宏预处理器。因此,如果您在Java代码中使用宏,则应该会遇到一些“痛苦”。例如,
- 源代码调试器不允许您设置相对于原始源代码的断点。
- 如果您共享带有宏的Java代码,许多Java开发人员可能会at之以鼻,并且/或者抱怨必须安装/使用其他工具。
有很多用于Java的第三方宏预处理器的示例。例如Jatha,OpenJava,PrintMacroJ,JavaMacros等……(但是您遇到过使用其中任何一个的项目吗?)
宏允许我强制内联,但允许我对非宏代码进行代码管理。
真正。但是,JIT编译器在确定 应
内联的内容方面可能比您做得更好。它会(肯定)知道这些块有多大,并且它将具有执行频率,分支预测等您不可用的运行时统计信息。
请注意,有一些Hotspot JVM调优选项可能会影响优化程序的内联决策。看到此页面,然后扫描“ inlin”。例如,似乎有一种允许您增加内联方法主体的大小上限。



